繁体   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