我正在尝试编写一个 sql 语句来返回我在表中找到的重复项的列表。为简单起见,假设一个名为 TEST 的表具有一个 rowid 列和一个名为 column 1 的文本列,其日期如下:
rowid | column1
---------------
1 | A
2 | B
3 | C
4 | A
5 | B
6 | C
7 | D
我目前的查询是:
select t1.rowid, t1.column1, t2.rowid, t2.column1
from test t1
inner join test t2 on t1.column1 = t2.column1 and t1.rowid <> t2.rowid
它给了我以下结果,正如我所期望的那样:
rowid | column1 | rowid | column1
---------------------------------
1 | A | 4 | A
2 | B | 5 | B
3 | C | 6 | C
4 | A | 1 | A
5 | B | 2 | B
6 | C | 3 | C
我真正想要的只是:
rowid | column1 | rowid | column1
---------------------------------
1 | A | 4 | A
2 | B | 5 | B
3 | C | 6 | C
为了得到我想要的结果,我需要调用什么黑色的 sql 魔法?
最佳答案
select t1.rowid, t1.column1, t2.rowid, t2.column1
from test t1
inner join test t2 on t1.column1 = t2.column1 and t1.rowid < t2.rowid
关于sql - 在将表与自身连接以识别列中的重复数据时,如何防止它在结果中返回相反的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6887234/