“従業員”表に対して、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文