2015-11-04 10 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

Это один из способов сделать это с помощью производной таблицы, так что вы выберите один идентификатор каждой команды и присоединиться к ней в исходной таблице.

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', поступают из произвольных строк. –

Смежные вопросы