テーブル結合をしてデータ取得をする時に、元となるテーブルの情報を残して、もう一つのテーブルのデータは、あったら付けたして取得したい。という時があります。
この様な時は、外部結合演算子(+)を利用します。
構文は通常のテーブル結合と同じですが、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 等の固定値を入れるという事も可能です。