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行。
図解
重要ポイント
- 一致行: 結合キーが条件を満たす行同士の組。
- 未一致左行: LEFT JOINで右側対応がない左表行。
- 1対多結合: 1側の1行へ多側の複数行が対応する結合。
- 単一値副問合せ: 1行1列の値を返す副問合せ。
- 1対多JOINは1側行が多側件数だけ複製される。
間違えやすい点
- LEFT JOINの未一致右列を空文字と決めつけずNULLとして扱う。
- 副問合せの返却件数を無視しない。
- 結合で行数が必ず元表と同じと考えない。
用語解説
- 一致行
- 結合キーが条件を満たす行同士の組。
- 未一致左行
- LEFT JOINで右側対応がない左表行。
- 1対多結合
- 1側の1行へ多側の複数行が対応する結合。
- 単一値副問合せ
- 1行1列の値を返す副問合せ。
- 相関副問合せ
- 外側行の値を参照して行ごとに評価される副問合せ。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。