Close

内部結合と外部結合の違い

SQL結合の種類として、内部結合、外部結合、交差結合があります。
今回はそのうち内部結合と外部結合の違いについて説明します。

以下のサンプルテーブルを用いて説明します。

a_0004

<内部結合(INNER JOIN)>
二つのテーブル間で結合条件のフィールド値が一致するレコードのみを抽出します。
以下のサンプルSQLのように記述します。

サンプルSQL

SELECT テーブル1.列1, テーブル1.商品名, テーブル2.個数
FROM テーブル1
INNER JOIN テーブル2 ON テーブル1.列1 = テーブル2.列1

出力結果

a_0005

<外部結合(OUTER JOIN)>
二つのテーブル間で一方のテーブルについて全レコードを抽出し、
もう一方のテーブルについては結合条件のフィールド値と一致するデータのみ抽出します。

主に左外部結合(LEFT OUTER JOIN)と右外部結合(RIGHT OUTER JOIN)があります。
OUTERは省略可能です。

-左外部結合の場合-
FROM句に続くテーブル名(以下サンプルでは「テーブル1」)については全て抽出し、
ON句に続くテーブル(以下サンプルでは「テーブル2」)については
結合条件のフィールド値と一致するレコードのみを抽出します。

サンプルSQL

SELECT テーブル1.列1, テーブル1.商品名, テーブル2.個数
FROM テーブル1
LEFT JOIN テーブル2 ON テーブル1.列1 = テーブル2.列1

出力結果

a_0006

-右外部結合の場合-
ON句に続くテーブル名(以下サンプルでは「テーブル2」)については全て抽出し、
FROM句に続くテーブル(以下サンプルでは「テーブル1」)については
結合条件のフィールド値と一致するレコードのみを抽出します。

サンプルSQL

SELECT テーブル2.列1, テーブル1.商品名, テーブル2.個数
FROM テーブル1
RIGHT JOIN テーブル2 ON テーブル1.列1 = テーブル2.列1

出力結果

a_0009

 

Share on facebook
Share on twitter
Share on linkedin