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
に移動されます 状態。