
左外部結合・OUTER JOIN
内部結合では、結合するテーブル同士で、対応するデータ(等しいデータ)のみを取得するのに対して、
外部結合では、対応するデータがなくても(結合するテーブルの片方にしか存在しないデータの場合にも)、
値を取得できるようになります。
SELECT 選択リスト FROM テーブル名1{ LEFT | RIGHT }
OUTER JOIN テーブル名2
ON テーブル名1.結合キー列 = テーブル名2.結合キー列
RIGHT OUTER JOIN(右外部結合)
社員
|
社員番号
|
氏名
|
部署番号
|
|
1
|
安藤花子
|
001
|
|
2
|
井上花子
|
001
|
|
3
|
上田花子
|
002
|
|
部署
|
部署番号
|
部署名
|
|
001
|
総務部
|
|
002
|
営業部
|
|
003
|
開発部
|
|
SELECT * FROM 社員
RIGHT OUTER JOIN 部署
ON 社員.部署番号 = 部署.部署番号
|
社員番号
|
氏名
|
部署番号
|
部署番号
|
部署名
|
|
1
|
安藤花子
|
001
|
001
|
総務部
|
|
2
|
井上花子
|
001
|
001
|
総務部
|
|
3
|
上田花子
|
002
|
002
|
営業部
|
|
NULL
|
NULL
|
NULL
|
003
|
開発部
|
INNER JOIN(内部結合)では、部門番号が等しいデータのみを取得するので、
所属社員のいない「開発部」を取得することはできません。
これに対して、OUTER JOIN(外部結合)では、
対応するデータがない場合(結合するテーブルの片方にしか存在しないデータの場合)にも、
結果を取得できるようになります。
何となくわかっていただけましたか!!
まぁ右外部結合は右が左になるだけですね〜簡単ですね
これで外部結合の説明終わります。
おろ、一つ抜けているのでと思った方は鋭いですね〜〜
そう、完全辺外部結合が抜けているのですね・・・
あまり使わない外部結合のためここでは割合します。
・・・決して怠慢ではないですよ〜〜
(ちなみに筆者も使ったことがないです。)
・・・・・・・ちょっとはしょりすぎですか???では時間があればしますね
左外部結合です・・時間があればね・・・
|
|