@arsenaljek

Удалить дубли MYSQL?

Как удалить дубли в одной из таблиц?
Есть 2 таблицы
Мне нужно из таблицы products удалить дублирующие строки. Но остаться должна строка id_bon которой = id_bon из таблицы prices.
Пытался сделать запрос
DELETE a.* FROM products a,
    (SELECT
       b.id_bon
       FROM prices b
       GROUP BY b.id_bon
     ) c
WHERE
     a.id_bon != c.id_bon

Но как-то он подвис...уже полтора часа выполняется
  • Вопрос задан
  • 512 просмотров
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
DELETE FROM products
WHERE NOT EXISTS 
(SELECT * FROM prices WHERE products.id_bon = prices.id_bon)

и не надо экономить на буквах, давая таблицам непонятные псевдонимы.
А исходный запрос скорее всего прибьет всю таблицу.
Плюс надо бы проверить наличие индексов на id_bon в обеих таблицах
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы