So-net無料ブログ作成
データベース ブログトップ

【DB】 SQL 表(テーブル)結合の種類 [データベース]

データベースからデータを取り出すときに、複数の表(テーブル)からデータをまとめて取り出したい時があります。そんなときは表の結合を行うことで、バラバラに管理されていたデータを統合して取り出すことができます。

表(テーブル)の結合には以下の種類があります。

 ・内部結合
 ・外部結合
 ・単純結合

外部結合には更に以下の3種類があります。
 ・左外部結合
 ・右外部結合
 ・完全外部結合



■結合の種類と概要

  結合の種類と概要を以下の表にまとめました。

内部結合 指定した列(カラム)について、同じ値を持つレコード同士だけ結合する。
外部結合 左外部結合 左表を基準にして、指定した列(カラム)について、同じ値を持つ右表のレコードを結合する。左表にあって右表にないレコードはすべてNULLで結合される。逆に右表にあって左表にないレコードは結合されない。
右外部結合 右表を基準にして、指定した列(カラム)について、同じ値を持つ左表のレコードを結合する。右表にあって左表にないレコードはすべてNULLで結合される。逆に左表にあって右表にないレコードは結合されない。
完全外部結合 左表と右表のすべてのレコードが結合される。
単純結合 左表の全行と右表の全行が結合する。つまり、左表に2行のレコード、右表に3行のレコードが格納されている場合、結合結果は全てのレコードの組合せになり合計 2×3=6 行のレコードになる。




■SQL構文

  表を結合するときに使用するSQL構文とその使用例を以下にまとめました。

内部結合 SELECT [表示したい列を列挙] FROM [左表] INNER JOIN [右表] ON [結合条件];

  省略形:JOIN
  使用例:
    SELECT * FROM table1 t1
      INNER JOIN table2 t2 ON t1.id = t2.id;
    SELECT * FROM table1 t1
      JOIN table2 t2 on t1.id = t2.id;
外部結合 左外部結合 SELECT [表示したい列を列挙] FROM [左表] LEFT OUTER JOIN [右表] ON [結合条件];

  省略形:LEFT JOIN
  使用例:
    SELECT * FROM table1 t1
      LEFT OUTER JOIN table2 t2 ON t1.id = t2.id;
    SELECT * FROM table1 t1
      LEFT JOIN table2 t2 on t1.id = t2.id;
右外部結合 SELECT [表示したい列を列挙] FROM [左表] RIGHT OUTER JOIN [右表] ON [結合条件];

  省略形:RIGHT JOIN
  使用例:
    SELECT * FROM table1 t1
      RIGHT OUTER JOIN table2 t2 ON t1.id = t2.id;
    SELECT * FROM table1 t1
      RIGHT JOIN table2 t2 on t1.id = t2.id;
完全外部結合 SELECT [表示したい列を列挙] FROM [左表] FULL OUTER JOIN [右表] ON [結合条件];

  省略形:FULL JOIN
  使用例:
    SELECT * FROM table1 t1
      FULL OUTER JOIN table2 t2 ON t1.id = t2.id;
    SELECT * FROM table1 t1
      FULL JOIN table2 t2 on t1.id = t2.id;
単純結合 SELECT [表示したい列を列挙] FROM [左表] CROSS JOIN [右表];
  省略形:,
  使用例:
    SELECT * FROM table1 CROSS JOIN table2;
    SELECT * FROM table1 , table2;




■参照ページ
  SQL 基礎 – JOIN (表結合)の意味の違い
  表の結合の種類と概要、その基本パターン演習


スポンサードリンク


データベース ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。