与えられたSQL文は相関副問合せと NOT EXISTS 述語を用いています: sql SELECT 社員コード FROM 社員 X WHERE NOT EXISTS (SELECT * FROM 社員 Y WHERE X.社員コード = Y.上司) 副問合せ SELECT * FROM 社員 Y WHERE X.社員コード = Y.上司 は、「社員Xの社員コードが、誰か(社員Y)の上司として登録されているか」を判定します。 外側のWHERE句で NOT EXISTS が指定されているため、「誰の上司にもなっていない(=部下が1人も存在しない)社員」の社員コードが抽出されます。 社員表の上司列に現れる社員コードを確認すると: S001(S002, S003の上司) S003(S004の上司) S005(S006の上司) S006(S007の上司) したがって、上司列に含まれない(部下をもたない)社員は S002, S004, S007 です。正解は ウ です。 部下をもつ上司の社員コード(S001, S003, S005, S006)であり、 EXISTS を指定した場合の結果です。 直属の上司がいない最上位の社員コード(上司列がNULLの行)です。 中間管理職に当たる一部の社員コードです。