我正在尝试编写一个 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/

10-10 00:44
查看更多