令T为具有样本数据的表T(field1,field2)
(1, 2) // first part
(3, 4)
(5, 6)
....
(2, 1) // second part
(4, 3)
(6, 5)
如何排除second.field2 = first.field1 and second.field1 = first.field2
的第二部分记录?
答案 0 :(得分:1)
您可以使用least
和greatest
对这两个字段进行排序,并使用distinct
运算符删除重复字段:
SELECT DISTINCT LEAST(field1, field2), GREATEST(field1, field2)
FROM t
答案 1 :(得分:0)
SELECT *
FROM ztable t
WHERE field1 <= field2
OR NOT EXISTS (
SELECT * FROM ztable x
WHERE x.field1 = t.field2 AND x.field2 = t.field1
);
如果两个版本都存在,则仅提供(f1&lt; = f2)记录,如果只存在一个版本,则仅提供实际记录。