0

像这样:2外键引用相同的主键在MySQL

表 - 学生:

SID |命名

1 -----苏珊

2 -----摩根

3 -----伊恩

4 -----詹姆斯

主关键= SID

其他表如下所示:

表-1朋友

friendsID | personA | personB

1 ----------- 1 ----------- 3

2 ------------ 1-- --------- 2

3 ------------- 2 ----------- 3

4 ---- --------- ------------ 3 4

其中主键是:friendsID,PERSONA,personB

外键 = PERSONA,personB这BOT h请参阅sID学生表

我想要一种查询朋友表的方式,以便personA和personB颜色由名称通过sID替换。我尝试了自然连接,但只有在有一个外键的情况下才有效。

即即时寻找类似的东西:

friendsID | personA | personB

1 -----------苏珊-----------伊恩

2 ------------苏珊 - ---------摩根

3 -------------摩根-----------伊恩

4 ---- ---------伊恩------------詹姆斯

自然联接将工作,如果我只有personB作为列和没有personB。出于某种原因,当我这样做时,自然连接是巨大的: select * from朋友NATURAL JOIN学生;

请帮忙。谢谢

回答

3

您需要使用两个连接才能完成此操作。

例如:

select f.friendsID, 
    s1.name as personA_name, 
    s2.name as personB_name 
from friends f 
    inner join student s1 on s1.sID = f.personA 
    inner join student s2 on s2.sID = f.personB 
+0

灿烂,非常感谢! – user2219032 2014-10-28 21:44:36

相关问题