簡體   English   中英

如何查詢一個表的同一列中的兩個不同對象,這些對象與另一個表中的不同列相關?

[英]How can i make a query of two different objects in the same column of one table, relationed to different columns in another table?

我有桌子

人們

編號 INTEGER

姓名

電話號碼

主鍵(id)

電話呼叫

編號 INTEGER

來電者號碼

接收者號碼

期間

主鍵(id)

我想獲取類似的信息

name1(作為呼叫者) name2(作為接收者)
尼古拉斯 瑪麗
科斯塔斯 鮑勃

我用 SELECT 名稱管理,caller_number FROM people JOIN phone_calls ON people.phone_number = phone_calls.caller_number WHERE year = AND month = AND day = AND duration =; 要得到

作為呼叫者的名字 來電者號碼
尼古拉斯 6999999999
科斯塔斯 688888888

或使用 SELECT 名稱,receiver_number FROM people JOIN phone_calls ON people.phone_number = phone_calls.receiver_number WHERE year = AND month = AND day = AND duration =; 要得到

名稱為接收者 接收者號碼
瑪麗 6777777777
鮑勃 6555555555

或與 SELECT 呼叫者,receiver_number FROM phone_calls WHERE year = AND month = AND day = AND duration; 要得到

來電者號碼 接收者號碼
6999999999 6777777777
688888888 6555555555

或使用 SELECT 名稱,receiver_number FROM people JOIN phone_calls ON people.phone_number = phone_calls.caller_number WHERE year = AND month = AND day = AND duration =; 要得到

作為呼叫者的名字 接收者號碼
尼古拉斯 6777777777
科斯塔斯 6555555555

所以我在呼叫者的電話號碼或接收者的姓名和電話號碼上得到姓名,但在同一個地方沒有呼叫者的姓名和接收者的姓名。

您需要 2 個連接才能同時獲取呼叫者和接收者的姓名。 例如

SELECT caller.name, receiver.name
FROM phone_calls
JOIN people caller ON caller.phone_number = phone_calls.caller_number
JOIN people receiver ON receiver.phone_number = phone_calls.receiver_number
WHERE <your conditions>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM