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