データベース

基本情報技術者試験SQLで `SELECT 名前 FROM 社員 WHERE 部署ID IN (SELECT 部署ID FROM…

テクノロジ系データベース難易度:normal
SQLで `SELECT 名前 FROM 社員 WHERE 部署ID IN (SELECT 部署ID FROM 部署 WHERE 所在地='東京')` を実行した。この問合せが返す結果として正しいものはどれか。
所在地が東京以外の部署に属する社員の名前
所在地が東京の部署に属する社員の名前
全社員の名前を部署にかかわらず返す
部署表の所在地が東京の行の所在地名
正解
イ.所在地が東京の部署に属する社員の名前

内側の副問合せは所在地が東京の部署の部署ID集合を返す。外側はその集合にIN(含まれる)する部署IDを持つ社員の名前を返すので、東京の部署に属する社員の名前が得られ正しい。

?選択肢ごとの解説

ア ×東京以外の部署に属する社員はNOT INを使った場合の結果であり、INは集合に含まれる側を返すため逆である。
イ ○内側の副問合せは所在地が東京の部署の部署ID集合を返す。外側はその集合にIN(含まれる)する部署IDを持つ社員の名前を返すので、東京の部署に属する社員の名前が得られ正しい。
ウ ×全社員を返すのはWHERE条件を無視した場合であり、IN句で部署IDが東京の集合に絞られるため誤りである。
エ ×所在地名を返すのは内側の副問合せだけを単独実行した場合に近く、外側のSELECTは社員の名前を返すため誤りである。
この問題の「深掘り・誤答の完全解説・覚え方」は、登録すると読めます。

基本情報技術者試験は全4,036問。公開しているのはその一部で、登録すると残りも一問ごとにAI解説つきで解けます。SRS暗記カード・全真模試・弱点診断まで。

登録は1分・クレジットカード不要。無料のまま練習・暗記カード・模試まで使えます。

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-a3-0245

【基本情報技術者試験】SQLで `SELECT 名前 FROM 社員 WHERE…|正解「所在地が東京の部署に属する社…」|ukamiru 過去問