JOINと副問合せの試験問題への適用

JOIN結果予測では、まず結合キーごとに対応行を探し、INNERなら未一致を捨て、LEFTなら左未一致をNULL付きで残す。副問合せは内側から結果を確定する。

この単元で学ぶこと

  • 一致行の意味と役割を説明できる
  • 未一致左行の意味と役割を説明できる
  • 1対多結合の意味と役割を説明できる
  • JOIN結果行数と副問合せの評価順を具体例で追跡できる

本文解説

SQLを一気に読まず、内側の問い合わせ、結合条件、行条件、出力列の順で段階的に追う。

一致行 結合キーが条件を満たす行同士の組。 1対多なら左1行から複数結果が生じる。

未一致左行 LEFT JOINで右側対応がない左表行。 右表由来列はNULLになる。

1対多結合 1側の1行へ多側の複数行が対応する結合。 結果行数が増える。

単一値副問合せ 1行1列の値を返す副問合せ。 =や>など通常比較に使える。

相関副問合せ 外側行の値を参照して行ごとに評価される副問合せ。 処理関係を理解する必要がある。

JOINはキーごとの対応件数、副問合せは内側結果の形を先に書き出す。

部署Aに社員2人、部署Bに0人。部署LEFT JOIN社員ならAの2行+BのNULL行で3行。

図解

JOIN結果の作り方
キー対応件数を数え、LEFTでは未一致左行をNULL付きで補う。

重要ポイント

  • 一致行: 結合キーが条件を満たす行同士の組。
  • 未一致左行: LEFT JOINで右側対応がない左表行。
  • 1対多結合: 1側の1行へ多側の複数行が対応する結合。
  • 単一値副問合せ: 1行1列の値を返す副問合せ。
  • 1対多JOINは1側行が多側件数だけ複製される。

間違えやすい点

  • LEFT JOINの未一致右列を空文字と決めつけずNULLとして扱う。
  • 副問合せの返却件数を無視しない。
  • 結合で行数が必ず元表と同じと考えない。

用語解説

一致行
結合キーが条件を満たす行同士の組。
未一致左行
LEFT JOINで右側対応がない左表行。
1対多結合
1側の1行へ多側の複数行が対応する結合。
単一値副問合せ
1行1列の値を返す副問合せ。
相関副問合せ
外側行の値を参照して行ごとに評価される副問合せ。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。