我想选择没有记录到DOCUMENT表中的表PERSON的所有行,其中主表为FK。
对我来说什么可能更好? LEFT JOIN?不是吗?还有其他解决办法吗?
这是一个简单的方案:
PERSON
:
personId
personName
personSex
DOCUMENT
:
documentId
FK_Person
提前谢谢
答案 0 :(得分:3)
使用left join
并检查指向其他表的链接是否失败(is null
)
select p.*
from person p
left join document d on p.personId = d.fk_person
where d.fk_person is null
答案 1 :(得分:2)
尝试使用not exist
或left join
:
select P.*
from PERSON P left join DOCUMENT D on P.personId = D.FK_Person
where D.FK_Person is null
OR
select * from PERSON P
where not exists (select 1 from DOCUMENT D where P.personId = D.FK_Person)