Как удалить повторяющиеся строки в двух столбцах с группировкой по? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь удалить дублирующиеся строки, используя этот запрос, но MySQL ничего не возвращает и вылетает:

DELETE FROM project_category WHERE prc_id IN (SELECT prc_id
FROM project_category
GROUP BY prc_proid, prc_catid
HAVING COUNT(*) > 1)

Я хочу удалить дублирование:

+--------+-----------+-----------+
| prc_id | prc_proid | prc_catid |
+--------+-----------+-----------+
|   1691 |       207 |        16 |
|   1692 |       207 |        16 |
+--------+-----------+-----------+

1 Ответ

1 голос
/ 26 апреля 2019

MySql не разрешает прямую ссылку на таблицу, в которой происходит DELETE в предложении WHERE.Сделайте это так:

DELETE FROM project_category 
WHERE prc_id IN (
  SELECT prc_id FROM (
    SELECT prc_id
    FROM project_category
    GROUP BY prc_proid, prc_catid
    HAVING COUNT(*) > 1
  ) t
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...