查询一个主键两个外来关系

时间:2017-05-16 14:54:30

标签: sql-server

我有两个表,Team(teamID(pk),teamName)和Fixture(fixtureID,TeamA_ID(fk),TeamB_ID(fk))如何查询fixture表并获取两个团队的名称。

2 个答案:

答案 0 :(得分:1)

您需要两次加入Fixture表。这样的事情。

select *
from Fixture f
join Team t1 on t1.TeamID = f.TeamA_ID
join Team t2 on t2.TeamID = f.TeamB_ID

答案 1 :(得分:0)

您可以多次加入同一张桌子。

如果Fixture中的那些外键可以包含NULL值,那么通过使用LEFT JOIN(而不是INNER JOIN),你仍然可以从Fixture表中获取所有内容。

select 
  AB.fixtureID, 
  A.teamName as TeamA_Name, 
  B.teamName as TeamB_Name
from Fixture AB
left join Team A on (A.TeamID = AB.TeamA_ID)
left join Team B on (B.TeamID = AB.TeamB_ID)