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