JOIN(結合)の種類
SQL ServerをはじめとしたデータベースではテーブルをJOIN(結合)することがよくあります。「SQLのJOINは基本中の基本」といってもいいかもしれません。
4つのJOIN
JOIN(結合)にはいくつかの種類があります。ここでは代表的なJOIN(結合)の種類について解説します。
- INNER JOIN・・・内部結合
- LEFT OUTER JOIN・・・左外部結合
- RIGHT OUTER JOIN・・・右外部結合
- 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(結合)の種類について解説してみました。
コメント
これ読んだ人は「これはカラム構造の話」って理解できるかな?
書きたいとこだけ書くのは三流
読者は「読みたいとこだけ読む」