繁体   English   中英

sql-从每个组返回一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM