admin

如何基于多个表选择SQL结果

sql

我需要根据其他几个表中的某些匹配值从一个表中选择结果。我有以下表格:

person: id, firstname, lastname
team: id, teamname
player: id, person_id(FK), team_id(FK)
coach: id, person_id(FK), team_id(FK)

我需要返回每个团队的所有教练和球员的姓名。我只使用过内部联接,似乎无法在此处使用那些内部联接,所以知道如何执行此操作吗?


阅读 145

收藏
2021-05-10

共1个答案

admin

这将为您提供教练:

SELECT team.Teamname, person.Firstname, person.Lastname
FROM person
JOIN coach ON person.id = coach.person_id
JOIN team  ON coach.team_id = team.id

这将为您提供球员:

SELECT team.Teamname, person.Firstname, person.Lastname
FROM person
JOIN player ON person.id = player.person_id
JOIN team  ON player.team_id = team.id

因此,非优雅,简单的答案就是将所有内容与一起扔掉UNION

2021-05-10