使用SQLite,我如何找到“A,B”的实例,其中“A,C”和“B,C”不正确?

时间:2015-11-10 14:54:38

标签: sql sqlite

我有以下表格:

表1:

col1 | col2
 A1  |  B1
 A2  |  B2

表2:

col3 | col4
 A1  |  C1
 B1  |  C1
 A2  |  C2
 B2  |  C3

我想找到A和B在第一个表中配对的实例,即“A1和B1”,但只有A和B都不具有相同的C。

我意识到我可能没有措辞这么好。在上面的表中我想返回:A2和B2,因为它们在第一个表中配对,但在第二个表中它们具有不同的C。不会返回A1和B1,因为它们在第二个表中都有C1。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以使用:

SELECT DISTINCT t1.*
FROM table1 t1
JOIN table2 t2
  ON t1.col1 = t2.col3
JOIN table2 t3
  ON t1.col2 = t3.col3
WHERE t2.col4 <> t3.col4;

LiveDemo

我假设您的所有列都是NOT NULL