如何根据多个表选择SQL结果




我需要根据一些表中的某些匹配值从一个表中选择结果.我有以下表格:
person: id,firstname,lastname
team: id,teamname
player: id,person_id(FK),team_id(FK)
coach: id,team_id(FK)

我需要返回每个队的所有教练和球员的名字.我只是曾经使用过内部连接,而且看起来不像我这样使用,所以有什么想法呢?

解决方法

这将给你教练:
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.Lastname
FROM person
JOIN player ON person.id = player.person_id
JOIN team  ON player.team_id = team.id

所以,非优雅,简单的答案就是将它全部与UNION一起折腾起来.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...