我有两个表在apmid上有一对多的关联。因此,如果一个表有一个pmid,那么第二个表应该有多个具有相同pmid的行。然而,有些东西偏离了方向,我错过了第二个表中的最新一批pmid。这些查询应该有助于说明这个问题,但我不知道如何从第一个表中获取第二个表中实际缺少的id。

select count(*) from abstract_mesh am; #2167101

select count(*) from abstract_mesh am
join abstracts a on am.pmid = a.pmid; #2133848

select 2167101 - 2133848;  #33253

select count(*) from abstract_mesh where pmid is NULL; #33253

如您所见,抽象网格中有33253行没有pmid。我只想从abstracts表中确定我应该对哪些pmid感兴趣。

最佳答案

您可以使用NOT EXITS筛选出记录,例如。

select *
from table1 t1
where not exists
select * from table2 t2 where t1.pmid = t2.pmid;

08-06 20:37