【发布时间】:2020-08-18 20:49:51
【问题描述】:
我有一个表“people”,其中(为简单起见)每个人都有一个 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 之外的所有其他条目进行比较,等等。 我该怎么做?
【问题讨论】:
-
用您正在使用的数据库标记您的问题。样本数据和期望的结果也会有所帮助。
-
GROUP BY、HAVING 等
-
如果再添加(D, 3)行,是否应该返回(D, D)?
-
如果还加上 (F, 1),预期的结果是什么?
-
@jarlh 应该返回。 (但在我们的数据库中是不可能的,名称只在这个例子中使用,而不是在真实的数据库中。)
标签: mysql sql join select duplicates