所以我有两张桌子。我正在尝试联接两个表,并且仅返回表a中表b中没有匹配项的记录。到目前为止,我很困惑。
--------------------
name amount date
--------------------
bob 250 4/8/2010
dan 100 4/8/2010
sla 222 4/8/2010
obo 344 4/8/2010
bob 100 4/8/2010
--------------------
name amount date
--------------------
bob 250 4/8/2010
dan 100 4/8/2010
sla 500 4/8/2010
obo 300 4/8/2010
bob 100 4/8/2010
在SQL中执行此操作的一种规范方法是使用外部联接:
select a.*
from a left outer join b
on (
a."name" = b."name"
and a."amount" = b."amount"
and a."date" = b."date"
) where b."name" is null
and b."amount" is null
and b."date" is null
左外部联接返回联接左侧表中的所有行,无论它们是否匹配联接右侧表中的行。但是,当左表中的行与右表中的项不匹配时,右表中的列将设置为null
。因此,您可以过滤出所有匹配的行,并仅从左表中返回不匹配的行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句