SQLのFULL OUTER JOINとCOALESCEによる差分抽出

SQL文の WHERE 句では `A.ID IS NULL OR B.ID IS NULL` と指定されており、これは「表Aにしか存在しない行(B.IDがNULL)」または「表Bにしか存在しない行(A.IDがNULL)」を抽出する条件(対称差)です。 表Aと表Bの両方から不一致行を含めて全結合するためには、完全外部結合である FULL OUTER JOIN(または FULL JOIN)を使用する必要があります。結合後に COALESCE(A.ID, B.ID) を取ることで、NULLでない方のID値が取得されます。 INNER JOIN は両方の表に一致する行のみを結合するため、A.ID または B.ID が NULL となる行は結果に含まれず、常に0行となります。 LEFT OUTER JOIN は表Aの全行と表Bの一致行を結合するため、表Bにしか存在しないID(A.IDがNULL)を取得できません。 RIGHT OUTER JOIN は表Bの全行と表Aの一致行を結合するため、表Aにしか存在しないID(B.IDがNULL)を取得できません。

表 A と表 B から,どちらか一方にだけ含まれる ID を得る SQL 文の  a  に入れる字句はどれか。

A

ID

100

200

300

400

B

ID

200

400

600

800

〔SQL 文〕

sql
SELECT COALESCE(A.ID, B.ID)
 FROM A  a  B ON A.ID = B.ID
 WHERE A.ID IS NULL OR B.ID IS NULL
出典令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問10
ア
FULL OUTER JOIN
イ
INNER JOIN
ウ
LEFT OUTER JOIN
エ
RIGHT OUTER JOIN