SELECT R.社員番号, S.氏名 FROM R, S
WHERE R.社員番号 <> S.社員番号
イ
SELECT 社員番号, 氏名 FROM R
UNION SELECT 社員番号, 氏名 FROM S
ウ
SELECT 社員番号, 氏名 FROM R
WHERE NOT EXISTS (SELECT 社員番号 FROM S
WHERE R.社員番号 = S.社員番号)
エ
SELECT 社員番号, 氏名 FROM S
WHERE S.社員番号 NOT IN (SELECT 社員番号 FROM R
WHERE R.社員番号 = S.社員番号)
答え ウ
【解説】
差集合R-Sを求めるには、表Rから表Sと共通の部分を取り除けばよい。
表Rと表Sの共通部分は
SELECT 社員番号 FROM S WHERE R.社員番号 = S.社員番号
で表現できるので、表Rでこの部分ではないところを取りだすには、“NOT EXISTS”を使って SELECT 社員番号, 氏名 FROM R
WHERE NOT EXISTS (SELECT 社員番号 FROM S
WHERE R.社員番号 = S.社員番号)
(ウ)になる。