小编use*_*133的帖子

具有多个表和关系的复杂SQL查询

在这个查询中,我必须列出一对玩家ID和玩家名称的球员,他们为同一支球队效力.如果一名球员为3支球队效力,则另一支球员必须参加完全相同的3支球队.不能少,不多了.如果两名球员目前不参加任何球队,他们也应该被包括在内.查询应该返回(playerID1,playername1,playerID2,playerName2)而没有重复,例如如果玩家1信息在玩家2之前出现,则不应该有另一个玩家2信息在玩家1之前出现的元组.

例如,如果玩家A为洋基队和红袜队队员比赛,而队员队员为洋基队队员,红袜队队员和道奇队队员队效力,我就不应该参加比赛.他们都必须为洋基队和红袜队效力,而不是其他人.现在,如果玩家为同一个团队玩游戏,此查询会找到答案.

Tables:
player(playerID: integer, playerName: string)
team(teamID: integer, teamName: string, sport: string)
plays(playerID: integer, teamID: integer)

Example data:
PLAYER    
playerID    playerName
1           Rondo
2           Allen
3           Pierce
4           Garnett
5           Perkins

TEAM      
teamID     teamName       sport
1          Celtics        Basketball
2          Lakers         Basketball
3          Patriots       Football
4          Red Sox        Baseball
5          Bulls          Basketball

PLAYS
playerID    TeamID
1           1
1           2
1           3
2           1
2           3
3           1
3           3
Run Code Online (Sandbox Code Playgroud)

所以我应该把它作为答案 -

 2, Allen, 3, Pierce 
 4, Garnett, 5, Perkins
Run Code Online (Sandbox Code Playgroud)

. …

sql postgresql

8
推荐指数
1
解决办法
7万
查看次数

标签 统计

postgresql ×1

sql ×1