sql - Mutual Friend 栏,只选择一对

标签 sql

我有一张 table likes , 其中 ID1 喜欢 ID2

ID1     ID2
1025    1101
1247    1468
1316    1304
1501    1934
1641    1468
1689    1709
1709    1689
1782    1709
1911    1247
1934    1501

所以我选择那些互相喜欢的人,那就是例子
1501 1934
1934 1501

但是我只想选择每对一次,而我无法做到。谁能指出我正确的方向?它是更大查询的一部分,但这部分我无法做到。

谢谢

最佳答案

要获得所有相互喜欢的独特列表,您可以使用

SELECT ID1,
       ID2
FROM   likes L1
WHERE  ID1 > ID2
       AND EXISTS(SELECT *
                  FROM   likes L2
                  WHERE  L1.ID1 = L2.ID2
                         AND L1.ID2 = L2.ID1)  

关于sql - Mutual Friend 栏,只选择一对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769656/

相关文章:

sql - 在postgres中选择行号

c# - 获取 "The multi-part identifier &RAUM.ID; could not be bound"SQL 错误

mysql - 如何使用 mysql join 从最右边的表中仅返回一行

sql - 如何计算一对多的关系

java - 每 5 秒告诉 Java Servlet "executeQuery"

sql - 如何在 R 中表示非规范化表?

java - 如何使用插入查询而不是复制查询在postgresql中生成数据库的脚本文件?

从列表中替换 SQL

SQL 查询 - 选择除列中的值以 402 或 403 或 A40 开头的所有行

c# - BindingNavigator“保存”按钮未将数据保存到数据库