平成30年 春期 データベーススペシャリスト 午前II 問5

“社員”表に対して、SQL文を実行して得られる結果はどれか。
ここで、実践の下線は主キーを表し、表中の‘NULL’は値が存在しないことを表す。

社員
社員コード 上司 社員名
S001 NULL A
S002 S001 B
S003 S001 C
S004 S003 D
S005 NULL E
S006 S005 F
S007 S006 G

[SQL文]
 SELECT 社員コード FROM 社員 X
    WHERE NOT EXISTS
       (SELECT * FROM 社員 Y WHERE X.社員コード=Y.上司)

 ア 社員コード
S001
S003
S005
S006
 イ 社員コード
S001
S005
 ウ 社員コード
S002
S004
S007
 エ 社員コード
S003
S006


答え ウ


解説
SQL文の3行目の「SELECT * FROM 社員 Y WHERE X.社員コード=Y.上司」は、社員Xは他の社員Yの上司になっているになり、2行目の「WHERE NOT EXISTS」は3行目の社員Xを除くなので、結果は“誰の上司にもなっていない社員”になるので、出力されるのは、S002、S004、S007(ウ)になります。


キーワード
・SQL文

キーワードの解説

戻る 一覧へ 次へ