令和3年度 午後Ⅰ 問3 設問2 (3) 空欄k

悪問ってあるのか?さん  
(No.1)
令和3年度 午後Ⅰ 問3 設問2 (3) 空欄k について質問です。
解答例は「LEFT OUTER JOIN」ですが「INNER JOIN」でも正解なのではないかと考えています。
根拠としては、表5で物件設備テーブルの物件コードの列値個数が1,600,000なので、新物件テーブルの物件コードの列値個数と等しく、INNER JOINでもLEFT OUTER JOINでも結果は変わらないと思うからです。
上記考えについて、間違っている点はございますでしょうか?

おそらく作問者の意図としてはLEFT OUTER JOINのみを正答としたかったと予想しますが、上記の考えが正しい場合、作問者の意図しない別解が成立してしまっており、”悪問”と扱われてもおかしくないような気がします。DBSPのような試験でもこの手の悪問は存在するのでしょうか?
2023.09.17 17:26
ピノッキさん 
(No.2)
たまたまこのケースだからうまくいっただけで、

以降実施時のSQLとしては「INNER JOIN」では不適切ですね


「CASE WHEN」を使うように示されていますし、
一般的にうまくいく方法である必要があります。
2023.09.17 18:19
wahiroさん 
(No.3)
>3.テーブルの移行
>(4)~設置済個数列を1に設定し~
という記載と、表4のSQL5の内容より、"物件設備"テーブルには設置済個数が1以上の設備のみ行登録されていると思われます。(設置済個数が0の設備は行登録されない)

掲題の設問の場合、空欄oで設備コードがエアコン(またはオートロック)に一致する条件を指定する必要がありますので、上述の前提と合わせて内部結合にしてしまうとエアコンが設置されている物件のみが抽出されることになります。(2つ目の内部結合と合わせて最終的にエアコン有かつオートロック有の物件のみが抽出されます)
したがって、内部結合の場合はエアコン(またはオートロック)が存在しない物件の行を列値'N'として表示させることができなくなります。
2023.09.18 10:08
ピノッキさん 
(No.4)
この投稿は投稿者により削除されました。(2023.09.18 11:02)
2023.09.18 11:02
ピノッキさん 
(No.5)
たしかに、wahiroさん仰る通りですね。

空欄nが2回連続しているので、INNERJOINでは、エアコンかつオートロックの条件になってしまいますね。
2023.09.18 11:05

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop