令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21
テクノロジ/データベース表 R と表 S に対して,次の SQL 文を実行した結果はどれか。 〔SQL 文〕 SELECT R.X AS A, R.Y AS B, S.X AS C, S.Z AS D FROM R LEFT OUTER JOIN S ON R.X = S.X

出典:令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21
- ア図ア
- イ図イ
- ウ図ウ
- エ図エ
正解:ウ
解説
この SQL 文は,表 R を基準に表 S を X で左外部結合しています。左外部結合では,R の全行が結果に含まれ,S に一致する行がない場合は S 側の列(C,D)が NULL になります。R の A001 と A005 は S に X が一致する行がないため C,D が NULL となり,A002 と A003 は S と一致するためそれぞれの値が結合されます。したがって,A001,A002,A003,A005 の4行が結果となる図ウが正しくなります。
選択肢ごとの解説
- ア誤り。この結果は R のうち S と一致しない行(A001,A005)だけを抽出したものであり,左外部結合の結果としては A002,A003 の一致行が欠落しています。
- イ誤り。この結果は R と S が一致する行だけを抽出し,さらに S にしかない A004 の行まで含んでおり,左外部結合ではなく完全外部結合や内部結合とは異なる誤った結果です。
- ウ正しい。左外部結合では R の全4行(A001,A002,A003,A005)が結果に含まれ,S と一致しない A001,A005 は C,D が NULL になり,一致する A002,A003 には S の値が入ります。
- エ誤り。この結果には S にしかない A004 の行が含まれていますが,左外部結合では右側の表である S にしかない行は結果に含まれません。