HOME»基本情報技術者試験掲示板»平成21年春期午後問3
投稿する

平成21年春期午後問3 [4469]

 ANさん(No.1) 
https://www.fe-siken.com/kakomon/21_haru/pm03.html

設問4の答えがアではいけないのはなぜでしょうか?
また設問4にてJOINを使っていますが、わざわざそうしている理由があまり良くわかりません。
設問2のようにANDを使って表を結合するのではだめなのでしょうか?

素人質問ですみません。
どなたか教えていただけますと幸いです。
2022.10.07 13:36
jjon-comさん(No.2) 
FE ゴールドマイスター
> 設問4の答えがアではいけないのはなぜでしょうか?

アは,「じゃがいもの在庫が0でない」ことだけを判定して,
じゃがいもを食材として使用する料理名をすべて表示します。

> 使用する食材すべてについて在庫がある

ことを判定していません。

--------
> 設問4にてJOINを使っていますが、わざわざそうしている理由があまり良くわかりません。

問題文にこう書いてあります。

> SQL文の可読性を向上させるため,表の結合にはJOIN句を用いる。

--------
> 設問2のようにANDを使って表を結合するのではだめなのでしょうか?

次のように書くこともできます。

SELECT  料理表.料理名
FROM      料理表, 分量表, 商品表
WHERE    料理表.料理ID = 分量表.料理ID
    AND    分量表.商品ID = 商品表.商品ID
    AND    [        ]

WHERE句に関係式を列挙することになるのですが,
表の結合のための関係式と,行の選択のための関係式は,
役割が違いますので,両者を文法で区別するためには
FROM … JOIN … ON … 句の方が優れています。

WHERE    商品表.商品名 = 'じゃがいも'
    AND    料理表.料理ID = 分量表.料理ID
    AND    [        ]
    AND    分量表.商品ID = 商品表.商品ID

のように,結合の関係式と選択の関係式を混ぜて記述されたら役割が分かりづらいですから。
2022.10.07 18:04
 ANさん(No.3) 
理解できました。
詳細に教えていだきありがとうございました!
2022.10.07 19:09
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop