3

我从查询中计算了一个表,它看起来像这样:

UID1 UID2
2    3
2    15
3    2
7    12
12   7
15   2

我只需要这里唯一的元组。即在 UID1=2,UID2=3 和 UID1=3,UID2=2 的元组中,我只需要输出中的 1 个元组。
尝试在此表上使用连接,并在另一个表中交换 UID 值,但同样的结果再次出现在输出中。
请问有什么建议吗?

4

1 回答 1

0

请参阅应该可以解决您的问题的这个 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;
于 2013-10-11T02:58:21.003 回答