SQlite:如何找到互斥对?

SQlite:如何找到互斥对?,sqlite,Sqlite,有一个表Likes,其中的字段ID1ID2包含相互排斥的对,如 1689 1709 及 我想找到他们。我尝试了连接,但没有成功 select L.ID1,L.ID2 from Likes L where (L.ID1||L.ID2) = (L.ID2||L.ID1); 您必须将表连接到自身: SELECT L1.ID1, L1.ID2 FROM sometable L1 JOIN sometable L2 ON L1.ID1=L2.ID2 AND L1.ID2=L2.ID1 这将显示

有一个表
Likes
,其中的字段
ID1
ID2
包含相互排斥的对,如

1689    1709

我想找到他们。我尝试了连接,但没有成功

select L.ID1,L.ID2
from Likes L
where (L.ID1||L.ID2) = (L.ID2||L.ID1);

您必须将表连接到自身:

SELECT L1.ID1, L1.ID2 FROM sometable L1
JOIN sometable L2 ON L1.ID1=L2.ID2 AND L1.ID2=L2.ID1

这将显示表中具有相反对的ID对。如果您不想添加
WHERE L1.id1,那么在这里互斥对的确切含义是什么?1689 1709 1709 1689您的尝试不起作用的原因是
WHERE
子句一次只对一行求值。。。在您的情况下,其中两个测试将是
16891709=17091689
17091689=16891709
,两者都不是真的。
SELECT L1.ID1, L1.ID2 FROM sometable L1
JOIN sometable L2 ON L1.ID1=L2.ID2 AND L1.ID2=L2.ID1