sql - 选择特定列中具有不同值的行

时间:2015-11-04 19:23:35

标签: mysql sql

我们假设我有下表:

   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

2 个答案:

答案 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列的每个值发生的第一条记录。