Помогите с запросом

Nicca

Новичок
Помогите с запросом

У меня есть таблица в которой уникальны 1600 записей а еще 200 дублируются. Как выбрать дублирующиеся записи. Тоесть как бы на языке логики НЕ DISTINCT
Спасибо
 

Nicca

Новичок
group by - групирует по заданому полю, а count - количество

Что-то я не понимаю при чем они здесь...

-~{}~ 09.11.07 00:08:

Может я плохо обьяснил.. У меня в таблице 1800 записей
При запросе
Select DISTINCT name from table - количество уникальных записей - 1600
Значит 200 - нужно найти и удалить..
Как составить такой запрос?

-~{}~ 09.11.07 00:13:

DELETE FROM companies WHERE id NOT IN (
SELECT DISTINCT full_name
FROM companies
GROUP BY full_name
)

Пробовал еще так - не катит , хотя вроде должно...?

-~{}~ 09.11.07 00:14:

DELETE FROM companies WHERE id NOT IN (
SELECT id
FROM companies
GROUP BY full_name
)

и так ошибку выдает
 

Krishna

Продался Java
С примерчиком мне лень, а тебе вредно.
Выделить нужные ряды просто, меня заботит получится ли удалить их одним запросом.
Мускул вроде бы не умеет удалять из таблиц, которые используются в подзапросах.
Хотя, join вроде к этому не относится, так что обойдется я полагаю, если выйдет без подзапроса порулить.
В худшем случае - временная таблица или массив пхп :(

-~{}~ 09.11.07 01:03:

В group by еще наверное having надо добавить

-~{}~ 09.11.07 01:04:

Сначала получаешь список дублирующихся строк, потом через left join НЕ дублирующихся, а потом удаляешь этот список.

-~{}~ 09.11.07 01:05:

А, недублирующихся не надо =)
Короче, всё должно получиться с этим операторами)
 
Сверху