JOINと副問合せを理解する
JOINは複数表を関連列で横に結び、副問合せは問い合わせ結果を別の問い合わせの条件や値として利用する。両者の役割と使い分けを理解する。
この単元で学ぶこと
- INNER JOINの意味と役割を説明できる
- LEFT OUTER JOINの意味と役割を説明できる
- ON句の意味と役割を説明できる
- INNER/LEFT JOINと副問合せを要件に応じて選べる
本文解説
INNER JOINは条件に一致する行だけを結び、LEFT OUTER JOINは左表の行を残しつつ一致しない右側をNULLで表す。副問合せは単一値・複数行など返す形に応じて比較方法を選ぶ。
INNER JOIN 結合条件に一致する行だけを結果へ含める結合。 両表に対応行が必要。
LEFT OUTER JOIN 左表の行を全て残し、一致する右表がない場合は右側列をNULLにする。 未対応データも確認できる。
ON句 JOINの結合条件を指定する。 主キーと外部キーの対応を記述することが多い。
副問合せ SELECT文の中に置かれ、結果を外側の問い合わせで利用するSELECT。 単一値・集合など返却形を意識する。
IN副問合せ 複数値を返す副問合せ結果のいずれかに一致するか判定する。 集合との比較に向く。
複数表の列を横に並べたいならJOIN、別問い合わせ結果を条件値として使うなら副問合せを考える。
SELECT e.name,d.name FROM employee e INNER JOIN department d ON e.dept_id=d.id; は所属部署が存在する社員と部署名を結ぶ。
図解
重要ポイント
- INNER JOIN: 結合条件に一致する行だけを結果へ含める結合。
- LEFT OUTER JOIN: 左表の行を全て残し、一致する右表がない場合は右側列をNULLにする。
- ON句: JOINの結合条件を指定する。
- 副問合せ: SELECT文の中に置かれ、結果を外側の問い合わせで利用するSELECT。
- INNERは一致行のみ、LEFTは左側を必ず残す。
間違えやすい点
- LEFT JOINで未一致行まで消してINNER相当になる条件を書かない。
- 複数行副問合せを=で比較しない。
- ON条件漏れによる直積に注意する。
用語解説
- INNER JOIN
- 結合条件に一致する行だけを結果へ含める結合。
- LEFT OUTER JOIN
- 左表の行を全て残し、一致する右表がない場合は右側列をNULLにする。
- ON句
- JOINの結合条件を指定する。
- 副問合せ
- SELECT文の中に置かれ、結果を外側の問い合わせで利用するSELECT。
- IN副問合せ
- 複数値を返す副問合せ結果のいずれかに一致するか判定する。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。