#mysql #sql
Допустим есть такая таблица:
id|name|number
1 |Igor|89172281212
2 |Petr|89274554545
3 |Andr|89172281212
Подскажите, как составить sql-код, который выведет 1 и 2 строчку, а 3 не надо, т.к.
их телефоны (с 1м) одинаковые.
Ответы
Ответ 1
Можно явно исключить лишние записи. Только надо определится по какому конкретно условию исключать. Вернее какая из записей с данным телефоном может быть более интересна. Например select * from Table as A where not exists(select 1 from Table as B where B.number=A.number and B.idОтвет 2
Нужно сгруппировать выдачу по какому либо параметру (number) и указать что делать с остальными колонками (id, name) при группировке (min max count avg sum и т.п.)Ответ 3
Вариант с подзапросом (по номеру берём минимальный id и потом по выбранным id соотв. записи): select T.* from TableName T join ( select min(id) as id from TableName group by number ) T2 on T2.id = T.idОтвет 4
Упрощаю select * from t where id in( select min(id) from t group by number)
Комментариев нет:
Отправить комментарий