外部結合(LEFT JOIN)は、左側のテーブルの全ての行に、右側のテーブルと一致する行があれば結合し、一致しない場合はNULL値を持つ結果を生成します。外部結合は、左側のテーブルの全てのデータを保持しながら、右側のテーブルとの結合結果を取得します。
以下のような2つのテーブルを例に解説します。

SELECT 社員.社員番号, 社員.氏名, 社員.部署コード, 部署.部署名
FROM 社員テーブル 社員
LEFT JOIN 部署テーブル 部署
ON 社員.部署コード = 部署.部署コード;
上記の例では、社員テーブルの全レコードを保持しながら、部署コードが一致しない行の部署名はNULLが返されます。
その結果、以下のような抽出結果となります。

LEFT JOINは、Oracle9i以降使用可能ですが、それ以前のバージョンでは(+) 演算子を使用して以下のように書くことができます。
SELECT 社員.社員番号, 社員.氏名, 社員.部署コード, 部署.部署名
FROM 社員テーブル 社員,部署テーブル 部署
WHERE 社員.部署コード = 部署.部署コード(+);

コメント