【Oracle SQL】外部結合(LEFT JOIN)

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

以下のような2つのテーブルを例に解説します。

SELECT 社員.社員番号, 社員.氏名, 社員.部署コード, 部署.部署名
FROM 社員テーブル 社員
LEFT JOIN 部署テーブル 部署
       ON 社員.部署コード = 部署.部署コード;

上記の例では、社員テーブルの全レコードを保持しながら、部署コードが一致しない行の部署名はNULLが返されます。

その結果、以下のような抽出結果となります。

LEFT JOINは、Oracle9i以降使用可能ですが、それ以前のバージョンでは(+) 演算子を使用して以下のように書くことができます。

SELECT 社員.社員番号, 社員.氏名, 社員.部署コード, 部署.部署名
FROM 社員テーブル 社員,部署テーブル 部署
WHERE 社員.部署コード = 部署.部署コード(+);

コメント

タイトルとURLをコピーしました