SQL集合演算によるテーブル一致判定クエリ

2つのテーブル(名簿1と名簿2)の行が完全に一致しているかを判定するために、集合演算(UNION、EXCEPT、INTERSECT)を用いて対称差を求める問題です。 2つの集合 $A$ と $B$ が等しい($A = B$)ことは、その対称差 $(A \cup B) \setminus (A \cap B)$ が空集合(要素数 0)であることと同値です。したがって、a = UNION(和集合)、b = EXCEPT(差集合)、c = INTERSECT(積集合)となり、正解は「エ」です。

“名簿1”表と“名簿2”表のそれぞれ対応する行が全て等しいかどうかを確認するSQL文の  a , b , c  に入れる適切な字句はどれか。

sql
〔SQL文〕
SELECT CASE WHEN COUNT(*) = 0 THEN '等しい' ELSE '異なる' END AS 結果
 FROM ((SELECT * FROM 名簿1  a  SELECT * FROM 名簿2)
      b 
    (SELECT * FROM 名簿1  c  SELECT * FROM 名簿2)) COMPARE
出典令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問9

 a 

 b 

 c 

ア

EXCEPT

UNION ALL

INTERSECT

イ

EXCEPT

UNION

INTERSECT

ウ

UNION ALL

INTERSECT

UNION

エ

UNION

EXCEPT

INTERSECT