Допустим, есть таблица с записями с одинаковыми значениями для нескольких полей и необходимо найти все эти записи. Простой и элегантный способ сделать это через GROUP BY и JOIN таблицы самой с собой.
Например, таблица содержит некоторые записи про сотрудников. Поля FirstName и LastName могут содержать повторяющиеся значения. Нужно выбрать все записи для тех сотрудников, про которых в таблице больше одной записи.
[bash title=»код»]
SELECT C.* FROM ( SELECT FirstName, LastName
FROM Employees
GROUP BY FirstName, LastName
HAVING COUNT(*) > 1 ) E
JOIN Employees C
ON C.FirstName = E.FirstName
AND C.LastName = E.LastName[/bash]
Поиск дубликатов url alias в ocStore:
[bash title=»код»]SELECT C.* FROM ( SELECT query, keyword
FROM oc_url_alias
GROUP BY query, keyword
HAVING COUNT(*) > 1 ) E
JOIN oc_url_alias C
ON C.query = E.query
AND C.keyword = E.keyword[/bash]