UNION ALL の結果
出典: 令和2年度 10月 応用情報技術者試験 午前 問29 (IPA)
“東京在庫”表と“大阪在庫”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。
東京在庫(主キー: 商品コード)
| 商品コード | 在庫数 |
|---|---|
| A001 | 50 |
| B002 | 25 |
| C003 | 35 |
大阪在庫(主キー: 商品コード)
| 商品コード | 在庫数 |
|---|---|
| B002 | 15 |
| C003 | 35 |
| D004 | 80 |
〔SQL 文〕
SELECT 商品コード,在庫数 FROM 東京在庫
UNION ALL
SELECT 商品コード,在庫数 FROM 大阪在庫- ア

- イ

- ウ

- エ

正解と解説を見る
正解: エ
- ア: C003 の行がありません。UNION ALL は両方の行を全て残します。
- イ: 在庫数を合計した結果になっています。UNION ALL は行をつなげるだけで、合計はしません。
- ウ: (C003,35) が 1 行になっていて、UNION (重複を除く) の結果です。UNION ALL では 2 行残ります。
- エ: 東京の 3 行と大阪の 3 行を、重複した (C003,35) も含めて全て残しているので正しい答えです。
ポイント
- UNION: 2 つの結果を縦につなげ、重複した行を 1 行にまとめます。
- UNION ALL: 2 つの結果を縦につなげ、重複した行もそのまま残します。
- 東京の 3 行と大阪の 3 行がそのまま 6 行並び、両方にある (C003,35) も 2 行残ります。