我试图在sql数据库中搜索子记录不存在的示例,或者如果子记录确实存在,则它们是特定类型(例如历史记录)而不存在其他类型(例如当前记录):
SELECT distinct parent.id FROM parenttable
Left Join childtable On childtable.primarykey = parenttable.primarykey
Where childtable.id is null
这将填充所有没有任何子记录但没有任何问题的父记录。但是,我还希望查询填充存在的唯一子记录是历史记录的示例(例如childtable.type='historical')。到目前为止我还没能做到这一点。
2条答案
按热度按时间zz2j4svz1#
你可以用
not exists
:这句话的意思是:从父表中获取所有没有子表的记录,这些子表的类型不是“historical”,没有子表的父表也满足这个条件。
ct2axkht2#
请尝试此操作(在中使用运算符):
它比为子查询中的每一行查找匹配项要快得多