我从查询中计算了一个表,它看起来像这样:
UID1 UID2
2 3
2 15
3 2
7 12
12 7
15 2
我只需要这里独特的元组。即,在UID1 = 2,UID2 = 3且UID1 = 3,UID2 = 2的元组中,输出中只需要1个元组。
尝试使用此表上的连接,在另一个表中交换UID值,但输出中再次出现相同的结果
有什么建议吗?
答案 0 :(得分:0)
请参阅应解决问题的this SQL Fiddle。
这是uid1 = uid2的两种组合的自连接,并且只根据uid1为“较小”的值保留1个结果。
select
t.*
from
test t
inner join test t2
on t.uid1 = t2.uid2
and t.uid2 = t2.uid1
where
t.uid1 < t2.uid1;