Votre clause where convertit la jointure externe en une jointure interne.
Les lignes non correspondantes conservées par la outer join
auront tous NULL
valeurs pour documentation.status
donc votre documentation.status != 3
condition les filtrera (Le résultat de l'expression NULL !=3
est unknown
pas true
).
Pour éviter ce problème, utilisez
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'
Notez que le documentation.status != 3
le prédicat est déplacé dans le JOIN
état.