Ser*_*era 4 sql select join exists left-join
想象一下,我有这个表:
.
我需要的是获取存在于A但不存在于B中的数据,在这种情况下,我的SELECT必须返回"2".
我以前做过,但是知道我不记得是怎么回事.我想它是这样的:
SELECT a.*
FROM A as a
LEFT JOIN B AS b ON b.column = a.column
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有谁可以帮助我吗?
提前致谢.
Dan*_*Dan 12
你刚刚错过了一个过滤器:
SELECT a.*
FROM A as a
LEFT JOIN B AS b ON b.column = a.column
WHERE B.column IS NULL
Run Code Online (Sandbox Code Playgroud)
如果B可以有多个匹配的行A,那么此查询将更合适:
SELECT a.*
FROM A as a
WHERE NOT EXISTS(SELECT NULL FROM B WHERE b.column = a.column)
Run Code Online (Sandbox Code Playgroud)
以下应该适用于大多数数据库类型
select *
from A
where A.column not in (select column from B)
Run Code Online (Sandbox Code Playgroud)