@nikitoshq

Как правильно создать запрос?

Здраствуйте!
Есть 2 таблицы работающие с отзывами:
`review` - основная таблица (связывает с кастомером и тд)
`review_detail` - хранит сам отзыв

Мне нужно удалить дубликаты отзывов по 2 полям `title`, `nickname`, но при этом сохранить хотя бы 1 запись

Я создал такой SQL, но у меня все отзывы просто удалились

DELETE FROM `review` WHERE `review_id` NOT IN (SELECT max(`review_id`) FROM `review_detail` GROUP BY `title`, `nickname`  HAVING count(*) > 1)


Может подскажите что я делаю не так?
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
DELETE t1 
FROM review_detail t1
JOIN review_detail t2 USING (title, nickname)
WHERE t1.detail_id < t2.detail_id;

https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=dc6a90...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект