JOIN(表結合)とは?ON句と、結合条件

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

JOINとは(全体像)

JOINとは、複数の表を、共通の項目でつなげて、ひとつの結果にするSQL機能のことだ。

2つの名簿でたとえると分かりやすい。社員番号という共通の項目で、「社員名簿」と「部署名簿」をつき合わせるようなものだ。これで、社員名と部署名を、まとめて取り出せる。

JOINには、いくつかの種類がある。

ここで一番のポイント。内部結合と外部結合は別ものだ。内部結合は一致した行だけ、外部結合は外側の行も残す。「内部結合と外部結合は同じ」と思い込むと誤りになる。


詳しく:ON句と、結合条件

ここが心臓部。ポイントを表で押さえよう。

JOINのポイント

項目やさしい意味
JOIN複数の表を共通の項目でつなげる
内部結合(INNER)両方で一致した行だけ
外部結合(OUTER)一方の全行を残し、一致しない部分は空(NULL)
ON句どの項目でつなぐか、結合条件を指定する

JOINを使うときは、ON句で「どの項目でつなぐか(結合条件)」を指定する。たとえば、「社員番号が同じ行をつなぐ」と指定する。

ここで一番のポイント。結合には、ON句で結合条件が必要だ(CROSS JOINを除く)。「JOINは、条件なしでつなげる」と思い込むと誤りで、ふつうは「どの項目でつなぐか」を指定する。

わかりやすく言い換えると

身近なたとえで整理しよう。

JOINは、「2つの名簿を、共通の番号でつき合わせること」のイメージ。

内部結合と外部結合の違いは、「内部結合は両方にある行だけ、外部結合は片方にしかない行も残す(空で補う)」こと。要するに、一致しない行を残すかどうか。

ON句は、「どの項目でつなぐか、という結合条件を指定するもの」こと。つまり、つなぐ目印を決める。


試験のツボ

🔴 一番出る:内部結合と外部結合

①内部結合(INNER)=両方で一致した行だけ

②外部結合(OUTER)=一方の全行を残し、一致しない部分は空(NULL)

🔴 次に出る:JOINの正体

①複数の表を、共通の項目でつなげるSQL機能

②2つの名簿を共通の番号でつき合わせるイメージ

🟡 押さえると安定:ON句

①ON句で、どの項目でつなぐか(結合条件)を指定する

②結合には条件が必要(CROSS JOINを除く)


よくある間違い

「内部結合と外部結合は、まったく同じものだ」→ ✗  内部結合は一致した行だけ、外部結合は外側の行も残す(空で補う)。役割が違う。

「JOINは、条件なしで(ON句なしで)つなげる」→ ✗  ふつうはON句で結合条件を指定する(CROSS JOINを除く)。

「JOINは、1つの表の中だけで使うものだ」→ ✗  JOINは、複数の表をつなげる機能。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(JOINの正体)

📝 オリジナル問題 1 JOINの正体

JOINに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  2. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  3. 複数の表を、共通の項目を使ってつなげるSQL機能のことである
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
エーアイコアラ
エーアイコアラ 解答・解説

解答は 3 です。

JOINは、複数の表を、共通の項目でつなげるSQL機能なのです。2つの名簿を共通の番号でつき合わせるイメージなります。

選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告で、どれも違うのです。

選択肢判定理由
1給与計算のしくみではない
2請求書の事務の話
3複数の表を共通の項目でつなげるで正しい
4広告活動ではない

オリジナル問題2(内部結合と外部結合)

📝 オリジナル問題 2 内部結合と外部結合

内部結合と外部結合の違いに関する次の記述のうち、最も適切なものはどれか。

  1. 内部結合は一致した行だけ、外部結合は外側の行も残すものである
  2. 社員の給与を計算するときだけ、違いが出るとされているものである
  3. 取引先への請求書の枚数しだいで、違いが決まるとされているのだ
  4. 内部結合も外部結合も、まったく同じものだとされているのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 1 です。

内部結合は一致した行だけ、外部結合は外側の行も残すのです。外部結合は、一致しない部分を空(NULL)で補うなります。

選択肢2の給与、選択肢3の請求書、選択肢4の「まったく同じ」は、いずれも違うのです。

選択肢判定理由
1内部=一致のみ・外部=外側も残すで正しい
2給与計算で違いが出るのではない
3請求書の枚数で決まるのではない
4内部結合と外部結合は役割が違う

オリジナル問題3(ON句)

📝 オリジナル問題 3 ON句

JOINのON句に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、必要だとされているものである
  2. どの項目でつなぐかという、結合のための条件を指定するものだ
  3. 取引先へ請求書を郵送するときだけ、必要だとされているのである
  4. ON句は、結合にはいっさい必要ないものだとされているのである
エーアイコアラ
エーアイコアラ 解答・解説

解答は 2 です。

ON句は、どの項目でつなぐか、結合条件を指定するものなのです。社員番号でつなぐ、などと指定するなります。

選択肢1の給与、選択肢3の請求書、選択肢4の「必要ない」は、いずれも違うのです。

選択肢判定理由
1給与計算のときだけではない
2結合条件を指定するもので正しい
3請求書のときだけではない
4結合には条件が必要(CROSS以外)

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る