HOME»基本情報技術者試験掲示板»平成24年春期午後問3 設問4について
投稿する

平成24年春期午後問3 設問4について [3328]

 情報太郎さん(No.1) 
https://www.fe-siken.com/kakomon/24_haru/pm03.html
お世話になります。設問4の解答はウで解説を読んでも納得するのですが、エがなぜ排除できるかがわかりません。宜しくお願いします。
2021.05.23 10:29
GinSanaさん(No.2) 
FE シルバーマイスター
エだと、明細表で注文されたかことがあるかどうかが参照条件ですよね。
ほんとは、where句内でテーブルを結合しているから、INNER JOIN句で結合する(今回なら料理コードか)ようにするのがふつうの書き方なんですが、結合条件にIN句が来る時点でふつうはおかしいです。
2021.05.23 12:17
 情報太郎さん(No.3) 
回答ありがとうございます。INについて少し調べてみましたが、やはり結合条件でINがくるのはおかしいですね。
2021.05.23 14:09
かなさん(No.4) 
FE ブロンズマイスター
この投稿は投稿者により削除されました。(2021.05.24 13:56)
2021.05.24 13:56
かなさん(No.5) 
FE ブロンズマイスター
「select * from 料理表, 明細表」を実行すると、
料理コード|料理名    |単価|精算コード  |料理コード|皿数
0001      ..|ごはん   . |100 .|03100186 ゙ ゙|0001      ..|1
0002      ..|肉じゃが  |280 .|03100186 ゙ ゙|0002      ..|1

はもちろん出ますが、それ以外にも
料理コード|料理名    |単価|精算コード  |料理コード|皿数
0001      ..|ごはん   . |100 .|03100186 ゙ ゙|0002      ..|1
0002      ..|肉じゃが  |280 .|03100186 ゙ ゙|0001      ..|1
も出てしまいます(直積結合)

そこから後者のように料理表.料理コードと明細表.料理表が異なるものを除外するための文が
>where 料理表.料理コード = 明細表.料理表
なのです。

これがないエでは、後者の意味不明な行も計算に含めてしまうため、不適切と判断できます。
2021.05.24 14:03
 情報太郎さん(No.6) 
ありがとうございます。
2021.05.31 21:57
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop