我正在尝试在具有一个共同参数的同一SQL表的行之间进行自我比较,我正在搜索如何消除重复的行。
以下是问题的表示:
表item
:
id | value
_________________
0 | 10
1 | 10
以下是我想得到的结果(其中一个很好,它们是等价的):
id1 | id2 * id1 | id2
___________________ O R ___________________
0 | 1 * 1 | 0
以下是我得到的结果:
id1 | id2
___________________
0 | 1
1 | 0
以下是我的查询:
SELECT item1.id as id1, item2.id as id2
FROM item item1, item item2
WHERE item1.value = item2.value
AND item1.id <> item2.id
有没有办法告诉它如果一对id“(0,1)”是一个结果,那么它不应该返回反转对“(1,0)”?
感谢您花时间阅读,如果我不清楚,请随时告诉我。
答案 0 :(得分:3)
您可以随意决定是否始终将对列表为(low,high)
,并使用<
代替<>
:
SELECT item1.id as id1, item2.id as id2
FROM item item1, item item2
WHERE item1.value = item2.value
AND item1.id < item2.id