初級シスアドSQL過去問題解説

解答:ウ

表の結合に関する問題である。この問題では表の結合結果を正しく得られるかを問われている。

表の結合には以下の二つの結合方法がある。

  • 内部結合
  • 外部結合

特に指定がなければ、表の結合は内部結合であると考えてよい。内部結合では、結合条件で指定された列が両方の表に存在するものだけが抽出される。言い換えれば、どちらか一方の表にしか存在しないものは抽出されないということである。このことをしっかり覚えておいて欲しい。

この問題では、注文表と製品表の両方に存在する製品コードので製品名と数量が抽出される。

スポンサードリンク

問題のSELECT文の意味は次のとおりである。

SELECT 製品名,数量
製品名と数量の列を抽出する
FROM 注文,製品
"注文"表と"製品"表より
WHERE 注文.製品コード = 製品.製品コード
"注文"表の製品コードと"製品"表の製品コードが一致する行を抽出する(表の結合条件)
注文表と製品表を結合
日付数量製品.製品コード注文.製品コード製品名
4月10日120P2P2テレビ
4月15日100P1P1PC
4月22日50P4P4冷蔵庫
5月6日100P1P1PC
5月8日70P3P3掃除機

製品名と数量の列を抽出するのであるから、実行結果は以下のようになる。

スポンサードリンク

実行結果
製品名数量
テレビ120
PC100
冷蔵庫50
PC100
掃除機70
関連ページ
SQL講座 表の結合
SQL講座 INNER JOINを使って表を結合する
SQL講座 表の外部結合(LEFT JOINとRIGHT JOIN)