#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)
Комментариев нет:
Отправить комментарий