IPA公式正解:ア FULL OUTER JOIN
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【ア】です。どちらか一方にのみ存在するレコード(対称差)を抽出するには、FULL OUTER JOIN(完全外部結合)を行い、WHERE句で「A.ID IS NULL OR B.ID IS NULL」と条件指定します。
【詳細解説】■ 本問の核心・解法のポイント
テーブルAとテーブルBの「どちらか一方にのみ含まれるID」(集合論における対称差集合 A △ B)をSQLで抽出する問題です。
SQL文のWHERE句には `WHERE A.ID IS NULL OR B.ID IS NULL` と指定されています。
結合によって、一致しなかった片方のテーブル側の属性がNULLとして残るようにするためには、両方向の外部結合であるFULL OUTER JOIN(完全外部結合)を行う必要があります。
・各選択肢の徹底解説:
・【選択肢ア★】:FULL OUTER JOINを行うと、両表の一致する行に加え、Aにのみ存在する行(Bの列はNULL)と、Bにのみ存在する行(Aの列はNULL)がすべて保持されます。WHERE句でいずれかがNULLの行を絞り込むことで、片方にしか存在しないIDのみを正確に取得できます。
・イ:INNER JOIN(内部結合)は両方に共通して存在するIDのみを結合するため、NULLが発生せず、WHERE句の条件により結果が0件になります。
・ウ:LEFT OUTER JOIN(左外部結合)では、Bにしか存在しない行(ID: 600, 800)が結果に含まれないため不十分です。
・エ:RIGHT OUTER JOIN(右外部結合)では、Aにしか存在しない行(ID: 100, 300)が結果に含まれないため不十分です。
よって正解はアです。