如何识别具有条件的表中不存在数据的条目



CnTy为PB00时,我想提取表1中有文章但不在表2中的所有数据。因此,如果表2中存在其他不是PB00的CnTy的文章,我仍然希望它出现在报告中。我一直在使用where CnTY!='它只是过滤掉PB00,而不是给我不包含"PB00"的文章。由于添加了条件,我认为我不能使用左联接。

这就是我所拥有的:

select* from T1
join T2 on T1.Article = T2.Article
WHERE T2.CNTY != 'PB00'

表2:的样本数据

在这个特定的例子中,由于PB00记录,不应该包括整篇文章。但是,如果文章只包含ZOID类型,则需要对其进行识别

使用not exists:

select t1.*
from T1
where not exists (select 1
from t2
where T2.Article = T1.Article and
T2.CNTY = 'PB00'
);

您可以按如下方式使用left join

select distinct t1.* 
from T1
Left join T2 on T1.Article = T2.Article and T2.CNTY = 'PB00'
Where T2.Article is null;

最新更新