Vaše klauzule where převádí vnější spojení zpět na vnitřní.
Neodpovídající řádky zachované outer join
všechny budou mít NULL
hodnoty pro documentation.status
takže váš documentation.status != 3
podmínka je odfiltruje (Výsledek výrazu NULL !=3
je unknown
není true
).
Chcete-li se tomuto problému vyhnout, použijte
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'
Všimněte si, že documentation.status != 3
predikát se přesune do JOIN
podmínka.