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