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是否为空。
答案 0 :(得分:2)
SELECT A.*
FROM A
LEFT JOIN B
ON A.value = B.value
WHERE b.value IS NULL