MENU

外部結合ってどんな時に使うの?

目次

はじめに

SQLの勉強をしていて、外部結合をどんな時に使うのかイメージできなかったので調べてみた。

内部結合と外部結合の違い

内部結合(INNER JOIN)

両方のテーブルに 一致するデータがある行だけ 出す。
「関係が成立しているものだけ見たい」

外部結合(OUTER JOIN)

一致しない行も 欠けたまま(NULL)で出す。
「関係が成立していないものも把握したい」

”存在していない事実を確認したいときが外部結合の出番。

サンプルデータを用意

シナリオ

登録だけして注文をしたことがない人を確認したい。

usersテーブル

登録ユーザーが記録されたテーブル。

user_idname
1Sato
2Suzuki
3Tanaka

ordersテーブル

注文履歴が記録されたテーブル。

order_iduser_idamount
10113000
10231500

外部結合でデータを抽出する

SQLで左外部結合

SELECT
  u.user_id, u.name,
  o.order_id, o.order_date, o.amount
FROM users u
LEFT OUTER JOIN orders o
  ON u.user_id = o.user_id
ORDER BY u.user_id, o.order_id;

結果

Suzukiさんは ordersテーブル に対応するデータがないため、注文していないことが分かる。

user_idnameorder_idorder_dateamount
1Sato1012025-12-063000
2SuzukiNULLNULLNULL
3Tanaka1022025-12-071500

解説

左外部結合なので usersテーブル に ordersテーブル をくっつけている。
そのため、ordersテーブルに値がなくてもNULL表示される。
ordersテーブルの値がNULL = 注文をしたことがない人が分かる。

ベン図_左外部結合

結論

外部結合は「ある/ない」を確認したいときに使える。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

勉強中のセキュリティエンジニアです。
初心者の目線で学んだことをまとめています。

コメント

コメントする

CAPTCHA


目次