如何为以下内容编写SQL查询

如何为以下内容编写SQL查询,sql,Sql,我有3张桌子,包括球队、球员和TxP Teams表包含列TeamName和TeamID(主键) PlayerName和PlayerID(主键)列为PlayerName和PlayerID TxP表中有PlayerID、TeamID列 我想编写一个查询,将结果集设置为PlayerName,TeamName从玩家a,Teams B,TxP C中选择a.PlayerName,B.TeamName,其中 select Teams.TeamName, TxP.PlayerID from Teams righ

我有3张桌子,包括球队、球员和TxP

Teams表包含列TeamName和TeamID(主键) PlayerName和PlayerID(主键)列为PlayerName和PlayerID TxP表中有PlayerID、TeamID列


我想编写一个查询,将结果集设置为PlayerName,TeamName

从玩家a,Teams B,TxP C中选择a.PlayerName,B.TeamName,其中
select Teams.TeamName, TxP.PlayerID
from Teams
right outer join TxP on TxP.TeamID = Teams.TeamID
A.PlayerID=C.PlayerID和B.TeamID=C.TeamID


此查询仅显示至少一个球队的球员以及至少有一名球员的球队

从球员、球队、TXP中选择球员.PlayerName、团队.team Name,其中团队.TeamId=TXP.TeamId和 Player.PlayerId=TXP.PlayerId

SELECT Players.PlayerName, Teams.TeamName
FROM Players
LEFT JOIN TxP ON Players.PlayerID = TxP.PlayerID
LEFT JOIN Teams ON TxP.TeamID = Teams.TeamID
ORDER BY Players.PlayerName
这将为每个玩家和团队组合提供一行,如果玩家没有团队,则包括一行具有空TeamName

要只显示有团队的玩家,只需切换到不使用左连接即可


例如,这可能会给出:

Bob      Sample United
Bob      Some other team
Chris

如果使用普通(内部)联接,则不会得到结果。如果一名球员可以有多个球队,但你只想要一个结果,那么你需要一个GROUP BY和一个聚合函数将你的球队名称组合成一个值。

此查询不显示球员名称
Bob      Sample United
Bob      Some other team
Chris