SQLの外部結合(OUTER JOIN)

テーブルの結合方式についての問題です。 SQL文における LEFT OUTER JOIN (左外部結合)は、結合の基準となる左側の表(今回は R)の「すべての行」を必ず抽出結果に含め、右側の表(今回は S)のうち結合条件(R.X = S.X)に一致する行があればそのデータを連結し、一致するデータがなければ「NULL」を補って表示する結合方式です。 各行の結合結果を確認します: 1. Rの X=A001:S側にA001は無いため、Sの列(C, D)は NULL となります。 2. Rの X=A002:S側にA002が存在するため、結合されて C=A002, D=20 となります。 3. Rの X=A003:S側にA003が存在するため、結合されて C=A003, D=30 となります。 4. Rの X=A005:S側にA005は無いため、Sの列(C, D)は NULL となります。 ※Sにある X=A004 は、基準となる左側の表Rには存在しないため出力されません。 この結果と一致する表は「ウ」となります。

表Rと表Sに対して、次のSQL文を実行した結果はどれか。

R

X

Y

A001

10

A002

20

A003

30

A005

50

S

X

Z

A002

20

A003

30

A004

40

[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
ア

A

B

C

D

A001

10

NULL

NULL

A005

50

NULL

NULL

イ

A

B

C

D

A002

20

A002

20

A003

30

A003

30

NULL

NULL

A004

40

ウ

A

B

C

D

A001

10

NULL

NULL

A002

20

A002

20

A003

30

A003

30

A005

50

NULL

NULL

エ

A

B

C

D

A001

10

NULL

NULL

A002

20

A002

20

A003

30

A003

30

NULL

NULL

A004

40

A005

50

NULL

NULL