Recebo resultados que considero inconsistentes com consultas simples.
-- This returns 3 rows
select * from persons
where person_id in (12,13,14)
-- This returns nothing
select *
from documents
where person_id in (12,13,14)
-- This returns nothing !?!?
select *
from persons
where persons.person_id not in ( select documents.person_id from documents )
Há um FK em documents.person_id apontando para people.person_id
Estou esquecendo de algo? Esta é a minha @@versão:
Microsoft SQL Server 2016 (SP1-CU1) (KB3208177) - 13.0.4411.0 (X64) 6 de janeiro de 2017 14:24:37 Direitos autorais (c) Microsoft Corporation Standard Edition (64 bits) no Windows Server 2012 R2 Standard 6.3 (Build 9600) : ) (Hipervisor)
Como @Scott Hodgin apontou em seus comentários, há algum valor NULL para person_id na
documents
tabela.Você pode evitá-lo facilmente adicionando
where person_id is not null
dbfiddle aqui