小技プログラミング

SELECT文で複数テーブルを結合して取得 外部結合演算子(+)

テーブル結合をしてデータ取得をする時に、元となるテーブルの情報を残して、もう一つのテーブルのデータは、あったら付けたして取得したい。という時があります。

この様な時は、外部結合演算子(+)を利用します。

構文は通常のテーブル結合と同じですが、WHERE句の指定の時に外部結合演算子 (+)を指定します。

例えば『テーブル1のデータは全て残して、テーブル2のデータを付けたしたい』という時は、
SELECT文で FROM テーブル1 T1,テーブル2 T2 と書いた場合、
WHERE でT1.カラム名 =T2.カラム名(+)
と、付け足したい値の方に(+)を指定します。

例えば、以下のような2つのテーブルがあったとします。

上記、TBL_USER の CODE カラムに関連付くデータが、TBL_CAR の CODE カラムにあればデータを取得するSQLのサンプルを下記に記載します。

SELECT
T1.ID, T1.NAME, T2.CAR_NAME
FROM
TBL_USER T1,
TBL_CAR T2
WHERE
T1.CODE = T2.CODE(+)
ORDER BY T1.ID ASC 

上記SQLの取得結果は以下のようになります。

※条件に一致するデータが無い時は null が取得されるので注意してください。

ちなみに、nullとなった時は 0 等の固定値を入れるという事も可能です。