我有两张桌子。第一个表包含ID,First_Name和Last_Name。
第二个表包含两个包含第一个表的不同ID的外键字段。
我希望能够运行一个SQL查询来获取第二个表的结果,然后根据两个不同的外键获取每个成员的First_Name。
我将如何做到这一点?
答案 0 :(得分:4)
select t2.*, t1a.firstname, t1b.firstname
from table2 t2
left join table1 t1a on t2.fk1 = t1a.id
left join table1 t1b on t2.fk2 = t1b.id
答案 1 :(得分:1)
假设第二个表有这样的字段
userid, supervisorid
(均指第一个表的Id列)
你可以写连接来获得像这样的值
SELECT t2.*, ID, firstname, lastname FROM table 2 t2
LEFT OUTER JOIN table 1 t1 ON
t2.userid = t1.id
OR t2.supervisorid = t1.id
答案 2 :(得分:0)
我认为正确的sql将低于使用外连接中的OR条件或使用union
的sqlSELECT t1.id,t1.name from table1 t1, table2 t2 WHERE t1.id1 = t2.id1
UNION
SELECT t1.id,t1.name from table1 t1, table2 t2 WHERE t1.id1 = t2.id0
SELECT t1.id, t1.name from table2 t2 LEFT OUTER JOIN table1 t2 ON t1.id = t2.id or t1.id1 = t2.id0