
応用情報技術者試験基礎・応用
条件を読む・根拠を説明する
外部結合とNULL
条件を整理し、答えを選んでから解き方を確認しましょう。
顧客A,Bが各1行。注文はAに2件、Bに0件。顧客を左表として顧客IDで左外部結合する。結果の行数とB側の注文値はどれか。
答え・解き方を読む
3行、Bの注文列はNULL
図で見る
左の行を保って右の一致行を付ける
左外部結合では右に一致がない左行もNULLを伴って残ります。図のAの注文2件は結合の一般例。WHEREで右側条件を付けた後の行数やCOUNTの対象は各設問の実データで再評価します。
図は問題の関係を整理する模式図です。記号には各問題の数値を当てはめます。寸法・面積・時間の縮尺や、実施工の全条件は表していません。
考える順序
- 1Aは一致する注文2件で2行になる
- 2一致しないBも左外部結合では1行残る
- 3合計3行、Bの注文側列はNULL
選択肢ごとの理由
- 比較 · 2行、Bの注文列は0を自動設定
外部結合が値0を自動で補うわけではありません。
- 比較 · 4行、Bへ2件の注文を複製
他人の注文を一致しない顧客へ複製しません。
- 正解 · 3行、Bの注文列はNULL
Aは一致する注文2件で2行になる。一致しないBも左外部結合では1行残る。合計3行、Bの注文側列はNULL。
- 比較 · 2行、Bの行はない
一致がない左側の行も保持する点が内部結合と異なります。