LoginSignup
4
3

More than 5 years have passed since last update.

SQL Serverでテーブル結合

Last updated at Posted at 2016-09-25

結合の種類

内部結合: JOIN, INNER JOIN

結合条件を満たす行のみを結合。
結合できない行は表示しない。

【補足】JOINを使わない外部結合
SELECT *
FROM A, B
WHERE A.no = B.no

※WHEREに絞り込み条件も記述するため、結合条件がどれなのかわかりにくくなる。

外部結合

結合できない行も表示する。

  • 左外部結合: LEFT JOIN, LEFT OUTER JOIN
    左側のテーブルのデータを全て表示する。

  • 右外部結合: RIGHT JOIN, RIGHT OUTER JOIN
    右側のテーブルのデータを全て表示する。

  • 完全外部結合: FULL JOIN, FULL OUTER JOIN
    両側のテーブルのデータを全て表示する。

【補足】JOINを使わない左外部結合
SELECT *
FROM A, B
WHERE A.no = B.no(+)

なぜいろいろな結合があるのか

内部結合だけだと、下記の場合にデータが結合結果から消滅してしまう。

  • 右側テーブルに結合相手のいない。
    例:家計簿テーブル(左)に新しい費目IDがあるが、費目テーブル(右)の費目IDが更新されておらず、データがみつからない。結果に表示されない買い物記録が存在してしまう。

  • 左側テーブルの結合条件の列がNULL。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3