8
Май

MySQL: Поиск дубликатов в таблице по нескольким полям

Допустим, есть таблица с записями с одинаковыми значениями для нескольких полей и необходимо найти все эти записи. Простой и элегантный способ сделать это через GROUP BY и JOIN таблицы самой с собой.

Например, таблица содержит некоторые записи про сотрудников. Поля FirstName и LastName могут содержать повторяющиеся значения. Нужно выбрать все записи для тех сотрудников, про которых в таблице больше одной записи.

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

 

Поиск дубликатов url alias в ocStore:

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
Комментариев нет

Leave a Comment