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

JOIN(結合)の種類

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

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

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

INNER JOIN(内部結合)

INNER JOIN(内部結合)は、両方のテーブルの結合条件に一致するものだけを取得します。

外部結合のようにテーブルの優先度はありません。

SQLでは「INNER JOIN」は「JOIN」と書いてもOKです。こちらの方が速くコードを書けます。

INNER JOINの詳細はこちら

SQL Server INNER JOINとは(内部結合)

LEFT OUTER JOIN(左外部結合)

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

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

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

SQLでは「LEFT OUTER JOIN」は「LEFT JOIN」と書いてもOKです。こちらの方が速くコードを書けます。

LEFT OUTER JOINの詳細はこちら

SQL Server LEFT JOIN・RIGHT JOINとは(外部結合)

RIGHT OUTER JOIN(右外部結合)

RIGHT OUTER JOIN(右外部結合)は、LEFT JOINの左右の優先度を逆にした結合です。

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

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

SQLでは「RIGHT OUTER JOIN」は「RIGHT JOIN」と書いてもOKです。こちらの方が速くコードを書けます。

FULL OUTER JOIN(完全外部結合)

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

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

SQLでは「FULL OUTER JOIN」は「FULL JOIN」と書いてもOKです。こちらの方が速くコードを書けます。

FULL OUTER JOINの詳細はこちら

SQL Server FULL JOINとは(完全外部結合)

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

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

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

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