1

我有两张桌子。第一个表包含 ID、First_Name 和 Last_Name。

第二个表包含两个外键字段,其中包含第一个表的不同 ID。

我希望能够运行一个 SQL 查询来获取第二个表的结果,然后根据两个不同的外键获取每个成员的 First_Name。

我该怎么做呢?

4

3 回答 3

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
于 2013-09-17T07:03:51.637 回答
1

假设第二个表有这样的字段

userid, supervisorid(都指第一个表的Id列)

你可以写 join 来得到这样的值

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 
于 2013-09-17T07:13:41.683 回答
0

我认为正确的 sql 在外部联接中使用 OR 条件或使用联合时会低于 1

SELECT 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
于 2013-09-17T07:56:54.120 回答