В основном я хотел бы сделать:
SELECT * FROM `table`
WHERE ( `col1`, `col2`)
IN
[
SELECT `col1`, `col2`
FROM `table`
GROUP BY `col1`, `col2`
HAVING count(*) >1
]
Я бы хотел выбрать все уникальные дубликаты и их фактические дубликаты.
но как я могу сохранить отношения между col1 и col2, относящиеся к запросу IN?
я знаю, что есть и другие способы сделать это.
один из методов - создание фиктивной таблицы, перемещение в нее всех соответствующих записей и замена оригинала.
другой использует соединение как:
SELECT *
FROM table t1
JOIN table t2
ON t1.id > t2.id
AND t1.col1 = t2.col1
AND t1.col2 = t2.col2;
но это займет около 10 минут: \