Вашата клауза where преобразува външното съединение обратно във вътрешно.
Несъвпадащите редове, запазени от outer join
всички ще имат NULL
стойности за documentation.status
така че вашият documentation.status != 3
условие ще ги филтрира обратно (Резултатът от израза NULL !=3
е unknown
не е true
).
За да избегнете този проблем, използвайте
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'
Обърнете внимание, че documentation.status != 3
предикатът се премества в JOIN
състояние.