小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

SQLでSELECT文での結合について

SELECT文では、複数のテーブルを FROM句に指定することができます。
その複数のテーブル指定には、以下の5種類の結合方法があります。

  1. 内部結合
  2. 完全外部結合
  3. 左外部結合
  4. 右外部結合
  5. クロス結合

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

Test01TBL

RowARowB
10011
10022

Test02TBL

RowCRowD
2XXXX
3YYYY

◆内部結合(INNER JOIN)

SELECT Test01TBL.RowA, Test02TBL.RowD
FROM Test01TBL INNER JOIN Test02TBL ON Test01TBL.RowB = Test02TBL.RowC

RowARowD
1002XXXX

◆完全外部結合(FULL OUTER JOIN)

SELECT Test01TBL.RowA, Test02TBL.RowD
FROM Test01TBL FULL OUTER JOIN Test02TBL ON Test01TBL.RowB = Test02TBL.RowC

RowARowD
1001NULL
1002XXXX
NULLYYYY

◆左外部結合(LEFT OUTER JOIN)

SELECT Test01TBL.RowA, Test02TBL.RowD
FROM Test01TBL LEFT OUTER JOIN Test02TBL ON Test01TBL.RowB = Test02TBL.RowC

RowARowD
1001NULL
1002XXXX

◆右外部結合(RIGHT OUTER JOIN)

SELECT Test01TBL.RowA, Test02TBL.RowD
FROM Test01TBL RIGHT OUTER JOIN Test02TBL ON Test01TBL.RowB = Test02TBL.RowC

RowARowD
1002XXXX
NULLYYYY

◆クロス結合(CROSS JOIN)

SELECT Test01TBL.RowA, Test02TBL.RowD FROM Test01TBL CROSS JOIN Test02TBL

RowARowD
1001XXXX
1002XXXX
1001YYYY
1002YYYY
実は、以下と同じなのです。
SELECT Test01TBL.RowA, Test02TBL.RowD FROM Test01TBL ,Test02TBL