mySQL - Эффективно проверьте таблицу на наличие дубликатов - PullRequest
2 голосов
/ 04 мая 2020

У меня есть таблица "people", где (для простоты) у каждого есть идентификатор, этот идентификатор не уникален, поэтому две записи могут иметь один и тот же идентификатор. Теперь я хочу найти все дубликаты, которые я бы сделал следующим образом:

SELECT p1.Name, p2.Name
FROM Person p1 JOIN Person p2 ON p1.ID = p2.ID

Пример данных будет выглядеть примерно так:

NAME ID

A    1
B    2
C    1
D    3
E    2
F    1
D    3

Результат должен быть:

A,C
A,F
B,E
C,F
D,D

Но я бы хотел сравнить только запись A со всеми остальными, а затем B со всеми остальными, ЗА ИСКЛЮЧЕНИЕМ A и др. c. Как мне это сделать?

1 Ответ

3 голосов
/ 04 мая 2020

Я думаю, что вы хотите:

SELECT p1.Name, p2.Name
FROM Person p1 
JOIN Person p2 ON p1.ID = p2.ID AND p1.Name < p2.Name
...