初級シスアドSQL過去問題解説
解答:ウ
表の結合に関する問題である。この問題では表の結合結果を正しく得られるかを問われている。
表の結合には以下の二つの結合方法がある。
- 内部結合
- 外部結合
特に指定がなければ、表の結合は内部結合であると考えてよい。内部結合では、結合条件で指定された列が両方の表に存在するものだけが抽出される。言い換えれば、どちらか一方の表にしか存在しないものは抽出されないということである。このことをしっかり覚えておいて欲しい。
この問題では、注文表と製品表の両方に存在する製品コードので製品名と数量が抽出される。
スポンサードリンク
問題のSELECT文の意味は次のとおりである。
- SELECT 製品名,数量
- 製品名と数量の列を抽出する
- FROM 注文,製品
- "注文"表と"製品"表より
- WHERE 注文.製品コード = 製品.製品コード
- "注文"表の製品コードと"製品"表の製品コードが一致する行を抽出する(表の結合条件)
日付 | 数量 | 製品.製品コード | 注文.製品コード | 製品名 |
---|---|---|---|---|
4月10日 | 120 | P2 | P2 | テレビ |
4月15日 | 100 | P1 | P1 | PC |
4月22日 | 50 | P4 | P4 | 冷蔵庫 |
5月6日 | 100 | P1 | P1 | PC |
5月8日 | 70 | P3 | P3 | 掃除機 |
製品名と数量の列を抽出するのであるから、実行結果は以下のようになる。
スポンサードリンク
製品名 | 数量 |
---|---|
テレビ | 120 |
PC | 100 |
冷蔵庫 | 50 |
PC | 100 |
掃除機 | 70 |