データベース
基本情報技術者試験 科目A免除 修了試験 20170122 実施分 問27
“注文”表と“製品”表に対して,次のSQL文を実行したときに得られる結果はどれか。
SELECT 製品名,数量 FROM 注文,製品
WHERE 注文.製品コード = 製品.製品コード
注文:
製品:
| 日付 | 製品コード | 数量 |
|---|---|---|
| 2016-04-10 | P2 | 120 |
| 2016-04-15 | P1 | 100 |
| 2016-04-22 | P4 | 50 |
| 2016-04-30 | P8 | 80 |
| 2016-05-06 | P1 | 100 |
| 2016-05-08 | P3 | 70 |
| 製品コード | 製品名 |
|---|---|
| P1 | PC |
| P2 | テレビ |
| P3 | 掃除機 |
| P4 | 冷蔵庫 |
| P5 | エアコン |
| P6 | 電話機 |
| P7 | 時計 |
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20170122 実施分 問27(問題文は IPA の公開問題。解説は当サイト作成)
答えと解説を見る
正解:ウ
覚える知識
SQLの内部結合の結果判定
内部結合では、両方の表に結合キーが存在する行の組のみが結果に含まれる。
この問題で必要なこと
WHERE句の等値条件による結合は内部結合で、製品に無いP8の行は結果に出ない。P1(PC)は注文が2件あるため2行出力される。
ひっかけ
外部結合のようにNULLの行が出ると誤解させる選択肢がある。
この知識の出題:本試験系 3 回・免除試験 12 回(公開問題での観測値)