テーブルの結合

提供:MochiuWiki : SUSE, EC, PCB
2020年3月10日 (火) 23:05時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == SQL Serverをはじめ、各データベースはテーブルをJOIN(結合)することがよくある。<br> ここでは代表的なJOINの種類につい…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

SQL Serverをはじめ、各データベースはテーブルをJOIN(結合)することがよくある。
ここでは代表的なJOINの種類について記載する。

  • INNER JOIN(内部結合)
  • LEFT OUTER JOIN(左外部結合)
  • RIGHT OUTER JOIN(右外部結合)
  • FULL OUTER JOIN(完全外部結合)
Database Join 1.jpg



INNER JOIN(内部結合)

INNER JOIN(内部結合)は、両方のテーブルの結合条件に一致するものだけを取得する。
外部結合のようにテーブルの優先度は存在しない。


LEFT OUTER JOIN(左外部結合)

LEFT OUTER JOIN(左外部結合)は、SQL文のFROM句で、左側にあるテーブルを優先して全レコード取得する。
結合される方のテーブルは、優先テーブルと一致する条件のレコードのみ取得する。
LEFT OUTER JOINは、最も利用される結合である。

なお、SQL Serverでは、LEFT OUTER JOINをLEFT JOINと記述してもよい。


RIGHT OUTER JOIN(右外部結合)

RIGHT OUTER JOIN(右外部結合)は、LEFT OUTER JOINの左右の優先度を逆にした結合である。
SQL文のFROM句で、右側にあるテーブルを優先して全レコード取得する。
結合される方のテーブルは、優先テーブルと一致する条件のレコードのみ取得する。

SQL Serverでは、RIGHT OUTER JOINをRIGHT JOINと記述してもよい。


FULL OUTER JOIN(完全外部結合)

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

SQL Serverでは、FULL OUTER JOINをFULL JOINと記述してもよい。