2015-11-04 55 views
1

讓我們假設我有以下表格: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 

回答

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

一個簡單的方法是按條件使用組提取。 (假設你的表名是TEAM_TABLE)

SELECT * FROM TEAM_TABLE GROUP BY TEAM; 

這將返回發生的team列的每個值的第一個記錄。

+1

這個答案根本就是錯誤的,它被接受是可悲的。 MySQL在文檔中特別提出警告:'SELECT'中不在'GROUP BY'中的列來自任意行。 –