我有两个表在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;