【SQL】JOIN (結合)の種類について解説します

JOIN(結合)の種類

SQL ServerをはじめとしたデータベースではテーブルをJOIN(結合)することがよくあります。「SQLのJOINは基本中の基本」といってもいいかもしれません。

4つのJOIN

JOIN(結合)にはいくつかの種類があります。ここでは代表的なJOIN(結合)の種類について解説します。

  1. INNER JOIN・・・内部結合
  2. LEFT OUTER JOIN・・・左外部結合
  3. RIGHT OUTER JOIN・・・右外部結合
  4. FULL OUTER JOIN・・・完全外部結合

4種類のJOINについて 順番に説明します。

INNER JOIN(内部結合)

INNER JOIN」はいわゆる内部結合のことです。2つのテーブルの結合条件に一致するものだけを取得します。外部結合のようにテーブルの優先度はありません。

SQLでは「INNER JOIN」は「JOIN」と省略して記述してもOKです。「JOIN」の方が速くコードを書けます。

INNER JOINの詳細はこちら

 

LEFT OUTER JOIN(左外部結合)

LEFT OUTER JOIN」はいわゆる左外部結合です。SQLのFROM句で、左側にあるテーブルを優先して全レコード取得します。

結合される方のテーブルは優先テーブルと一致する条件のレコードのみ取得されます。

LEFT OUTER JOIN(左外部結合)は、もっともよく利用される結合です。

SQLでは「LEFT OUTER JOIN」は「LEFT JOIN」と省略して記述してもOKです。省略した方が速くコードを書けます。

LEFT OUTER JOINの詳細はこちら

 

RIGHT OUTER JOIN(右外部結合)

RIGHT OUTER JOIN」はいわゆる右外部結合です。LEFT JOINの左右の優先度を逆にした結合です。

SQLのFROM句で、右側にあるテーブルを優先して全レコード取得します。

結合される方のテーブルは優先テーブルと一致する条件のレコードのみ取得されます。

SQLでは「RIGHT OUTER JOIN」は「RIGHT JOIN」と省略して記述してもOKです。省略した方が速くコードを書けます。

FULL OUTER JOIN(完全外部結合)

FULL OUTER JOIN」はいわゆる完全外部結合です。結合する2つのテーブルのどちらも優先で、結合条件で一致するレコードも一致しないレコードもすべて取得します。

LEFT OUTER JOIN(左外部結合)、RIGHT OUTER JOIN(右外部結合)のようにどちらかのテーブルを優先するわけではありません。

SQLでは「FULL OUTER JOIN」は「FULL JOIN」と省略して記述してもOKです。省略した方が速くコードを書けます。

FULL OUTER JOINの詳細はこちら

【SQL】JOIN(結合)のまとめ

SQLのJOIN(結合)の種類について解説しました。SQL Serverでも他のデータベースでもそうですが、JOINの中で最もよく使用するのは、何といっても「LEFT JOIN」(左外部結合)ですね。

それ以外のJOINはそれほど使用頻度は多くありません。でも知っておいて損はないし、使う機会が出てくるかもしれないので、その時に参考にしてもらえればと。

以上、SQLのJOIN(結合)の種類について解説してみました。

コメント

  1. byuniml より:

    これ読んだ人は「これはカラム構造の話」って理解できるかな?

    書きたいとこだけ書くのは三流

    読者は「読みたいとこだけ読む」