使用可能为空的子查询从表中减去行

时间:2015-10-20 19:01:38

标签: mysql sql join

table: A
-----------
value
1
2
3

sub-query: B
-----------
value
2

我需要(A - B)。

当B不为空时,以下查询有效。输出=(1,3)如预期的那样。

SELECT * FROM A
JOIN B
ON (A.value != B.value)

但是,当子查询B为空时,JOIN执行A与空B的交集,输出为空结果集。

如果我使用LEFT JOIN,它不会从表A中减去包含值2的行。

是否可以为(A - B)写一个查询,无论B是否为空。

1 个答案:

答案 0 :(得分:2)

SELECT A.* 
FROM A
LEFT JOIN B
ON A.value = B.value
WHERE b.value IS NULL
相关问题