Sua cláusula where está convertendo a junção externa de volta em uma interna.
As linhas não correspondentes preservadas pela
outer join
todos terão NULL
valores para documentation.status
então seu documentation.status != 3
condição irá filtrá-los de volta (O resultado da expressão NULL !=3
é unknown
não true
). Para evitar esse problema, use
select documentation_reference.ref_docnumber,
documentation.filename
from documentation_reference
left outer join documentation
on ref_docnumber = documentation.docnumber
and documentation.status != 3
where documentation_reference.docnumber = 'TP-036'
Observe que o
documentation.status != 3
o predicado é movido para o JOIN
doença.