假设我有两个相同的表,A和B,行“x”。
我想选择A中的所有元素,其中A中x的值不是B的x的任何值。
我该怎么做?
答案 0 :(得分:4)
您也可以这样做:
SELECT * FROM TableA
LEFT JOIN TableB on TableA.X = TableB.X
WHERE TableB.X IS NULL
(对于您问题中非常简单的示例,NOT EXISTS
/ NOT IN
方法可能更可取,但您的真实查询更复杂,这是一个选项吗可能想要考虑;如果,对于instace,你想要TableB中有som信息的地方有匹配,但也想知道哪里没有一个)
答案 1 :(得分:2)
我很难理解你需要什么 无论如何试试这个:
SELECT * FROM tableA
WHERE x not IN (SELECT x FROM tableB)
答案 2 :(得分:2)
select *
from TableA
except
select *
from TableB
答案 3 :(得分:1)
最快的是左连接
SELECT * FROM A LEFT JOIN B ON A.X = B.X WHERE B.X IS NULL
答案 4 :(得分:1)
使用它:
select * from a where x not in (select x from b)