我从一个查询中计算出一个表,它如下所示:
UID1 UID2
2 3
2 15
3 2
7 12
12 7
15 2
我只需要这里唯一的元组。也就是说,在uid1=2、uid2=3和uid1=3、uid2=2的元组中,输出中只需要一个元组。
尝试在另一个表中交换了uid值的情况下在此表上使用join,但在输出中再次出现相同的结果。
有什么建议吗?
最佳答案
看这应该能解决你的问题。
它是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;