Я пытаюсь удалить некоторые дублированные строки моей таблицы. Я начинаю с выбора всех дублированных строк, выполнив этот запрос:
SELECT a.id as id FROM table A join table B on A.site = B.site where A.nb_affichages = B.nb_affichages and A.nb_clics = A.nb_clics
Затем я пытаюсь удалить все выбранные идентификаторы из первого запроса:
DELETE FROM table WHERE id IN ( SELECT * FROM ( SELECT a.id as id FROM table A join table B on A.site = B.site where A.nb_affichages = B.nb_affichages and A.nb_clics = A.nb_clics) AS p )
Этот второй запрос удаляет все строки, выбранные в первом, вместо этого я хочу разрешить одну строку и удалить остальные.
Поэтому каждый может помочь мне оптимизировать этот запрос.
Он сохранит первые данные с дублирующимся значением и удалит все остальные значения дублированных значений.
DELETE c1 FROM table c1, table c2 WHERE c1.nb_affichages = c2.nb_affichages AND c1.nb_clics = c2.nb_clics AND c1.site = c2.site AND c1.id > c2.id;