我们假设我有下表:
id player_name team
1 Gladiator A
2 DarkLord B
3 Alligator A
4 MonaLisa C
5 SpongBob C
6 Mikasa B
我想从每个团队中选择一个玩家,这意味着所有选定的行必须在'team'
列中具有唯一值。我怎样才能在mysql中实现这个目标?
在我的示例中,所选行应为:
id player_name team
1 Gladiator A
2 DarkLord B
4 MonaLisa C
答案 0 :(得分:3)
这是使用派生表执行此操作的一种方法,因此您为每个团队选择一个ID并将其连接到原始表。
select t.id, t.player_name, t.team
from tablename t
join (select team, min(id) as minid from tablename group by team) x
on x.team = t.team and x.minid = t.id
答案 1 :(得分:1)
一种简单的方法是按标准使用组获取。 (假设你的表名是TEAM_TABLE)
SELECT * FROM TEAM_TABLE GROUP BY TEAM;
这将返回team
列的每个值发生的第一条记录。