首页 > 解决方案 > mySQL - 有效地检查表中的重复项

问题描述

我有一个表“人”,其中(为简单起见)每个人都有一个 ID,这个 ID 不是唯一的,所以两个条目可以有相同的 ID。我现在想找到我会这样做的所有重复项:

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 之外的所有其他条目进行比较,等等。我该怎么做?

标签: mysqlsqljoinselectduplicates

解决方案


我认为你想要:

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

推荐阅读