[英]sql - return one row from each group
考虑下表,什么是最好的方法来只返回团队成员及其相关的球员,但每个团队只有一名球员? 需要注意的重要部分是,选择必须基于给定的一组玩家ID。 那是起点。
使用下面的示例,我将拥有玩家ID:1、2、3(以及其他),最后需要得到的是用户ID列表(在本例中为1、2、3)的唯一成员身份。 我想以id为1和2的team_memberships结尾
谢谢!
player
id | name
1 | bob
2 | joe
3 | tom
team_memberships
id | team_id | player_id
1 | 1 | 1
2 | 2 | 2
3 | 1 | 3
team
id | name
1 | jets
2 | kings
你的意思是
Select team_id, Min(player_id)
From team_Memberships
Where player_id In (1,2,3)
Group By team_id
如果选择的玩家需要基于玩家表中的其他属性,则:
Select team_id,
(Select Min(player_id) -- in case more than one player satisfies criterion
From players
where playerId = m.Player_Id
And [Some other ctiterion]) playerId
From team_Memberships m
Where player_id In (1,2,3)
Group By team_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.