■ はじめに
https://dk521123.hatenablog.com/entry/2010/02/05/131206
の続き。 今回は、外部結合について、扱う。
目次
【0】外部結合の種類 【1】左外部結合(LEFT OUTER JOIN) 【2】右外部結合(RIGHT OUTER JOIN) 【3】内部結合と外部結合の違い 1)内部結合の場合 2)外部結合の場合
【0】外部結合の種類
【1】左外部結合(LEFT OUTER JOIN) 【2】右外部結合(RIGHT OUTER JOIN) 【3】完全外部結合(FULL OUTER JOIN) => 以下の図が分かりやすい
http://dbm.mmp-inc.co.jp/wp-content/uploads/2023/04/image-2-1536x864.png
テーブルの結合 ~ 完全外部結合・FULL JOIN ~
https://dk521123.hatenablog.com/entry/2025/09/03/093606
【1】左外部結合(LEFT OUTER JOIN)
* 左側テーブルのレコードに、右側テーブルのレコードを結合する * 右側テーブルに項目が存在しない場合、NULLで補う * OUTERを省略して、LEFT JOINでもいい
構文
SELECT * FROM 表名1 LEFT OUTER JOIN 表名2 ON 表名1.フィールド名 = 表名2.フィールド名 WHERE 抽出条件
【2】右外部結合(RIGHT OUTER JOIN)
* 左外部結合の右版 => 右側テーブルのレコードに、左側テーブルのレコードを結合する
【3】内部結合と外部結合の違い
* 以下「データ例」のような「テーブル1 」と「テーブル2」の結合を考える
データ例
テーブル1 A B C D E テーブル2 A★共通 B★共通 F G
1)内部結合の場合
SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1] FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
結果
A A B B
2)外部結合の場合
SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1] FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
結果
A A B B C NULL D NULL
関連記事
テーブルの結合 ~内部結合・INNER JOIN~
https://dk521123.hatenablog.com/entry/2010/02/05/131206
テーブルの結合 ~ 完全外部結合・FULL JOIN ~
https://dk521123.hatenablog.com/entry/2025/09/03/093606
テーブルの結合 ~交差結合・CROSS JOIN~
https://dk521123.hatenablog.com/entry/2011/12/21/000000
テーブルの結合 ~完全結合・Union / Union All ~
https://dk521123.hatenablog.com/entry/2010/03/28/162247
全く関係ないテーブルを結合することを考える
https://dk521123.hatenablog.com/entry/2021/09/16/185552