Sql 选择存在于A中但不存在于B中的数据

Sql 选择存在于A中但不存在于B中的数据,sql,select,join,left-join,exists,Sql,Select,Join,Left Join,Exists,假设我有这样的桌子: 我需要的是获取存在于A中但不存在于B中的数据,在这种情况下,我的SELECT必须返回“2” 我以前做过,但我不记得怎么做了。我想是这样的: SELECT a.* FROM A as a LEFT JOIN B AS b ON b.column = a.column 但它不起作用。有人能帮我吗 提前感谢。您只是缺少一个过滤器: SELECT a.* FROM A as a LEFT JOIN B AS b ON b.column = a.column WHERE B.co

假设我有这样的桌子:

我需要的是获取存在于A中但不存在于B中的数据,在这种情况下,我的SELECT必须返回“2”

我以前做过,但我不记得怎么做了。我想是这样的:

SELECT a.*
FROM A as a
LEFT JOIN B AS b ON b.column = a.column
但它不起作用。有人能帮我吗


提前感谢。

您只是缺少一个过滤器:

SELECT a.*
FROM A as a
LEFT JOIN B AS b ON b.column = a.column
WHERE B.column IS NULL

如果
B
可以有多行与
A
匹配,则此查询更合适:

SELECT a.*
FROM A as a
WHERE NOT EXISTS(SELECT NULL FROM B WHERE b.column = a.column)

以下内容适用于大多数数据库类型

select *
from A
where A.column not in (select column from B)