Ihre where-Klausel wandelt den äußeren Join wieder in einen inneren um.
Die nicht übereinstimmenden Zeilen, die vom outer join
beibehalten werden haben alle NULL
Werte für documentation.status
also Ihr documentation.status != 3
Bedingung filtert diese wieder heraus (Das Ergebnis des Ausdrucks NULL !=3
ist unknown
nicht true
).
Um dieses Problem zu vermeiden, verwenden Sie
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'
Beachten Sie, dass documentation.status != 3
Prädikat wird in den JOIN
verschoben Zustand.