左外部結合(LOJ)
左外部結合(LOJ)は、結合句を指定できる結合操作の1つです。最初の(左の)表の一致しない行は保持され、2番目の(右の)表のNULL行と結合されます。つまり、右表に一致する行を持たないすべての左の行は、右の行のかわりにNULL値と組み合せて結果に表示されます。
LOJの構文
loj_from_clause ::= FROM ( aliased_table_name
| left_outer_join_tables
left_outer_join_table ::= LEFT OUTER JOIN single_from_table
ON expression
left_outer_join_tables ::= single_from_table
left_outer_join_table
(left_outer_join_table
)*
セマンティクス
FROM句は、参加している表を指定し、2つのグループに分けます。最初に、ターゲット表(LEFT OUTER JOIN句の左側にある表)が指定されます。その後、LEFT OUTER JOIN句を指定できます。LEFT OUTER JOINキーワードの左の表は左表と呼ばれ、LEFT OUTER JOINの右の表は右表と呼ばれます。結合で参加している表の名前の後に表の別名を付けることができます。表の別名は、表に付けられた一時名です。別名は列名の可読性を高める目的で多用されます。別名が指定されていない場合は、問合せのスペルと同じ表名を使用して内部的に作成されますが、子表の場合はドット(.)文字が「_」で置換されます。結合述語は、複数の表のレコードが結合される列を指定します。ON句の後の式は、2つの表の間のすべての結合述語をリストします。left_outer_join_tables
句は、あるLOJの結果を別のLOJのターゲット表にできることを指定します。
他の種類の結合の場合と同様に、LOJでは、左表および右表から一致する行のペアを含む結果セットが作成されます。ただし、LOJでは左表のすべての行も保持されます。つまり、一致する行を持たない左の行も、右の行のかわりにNULL値と組み合せて結果に表示されます。
LOJでの結果セットの順序:
LOJでは、結果セット内のフィールドの順序は常にトップダウンになります。つまり、結果セット内の出力の順序は、常に祖先表から最初に出力され、次に子孫表から出力されます。これは、結合の順序に関係なく当てはまります。