過去問解きまくり研究所 ホーム

令和4年度 秋期 午前Ⅱ 問21

データベース

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

R

XY
A00110
A00220
A00330
A00550

S

XZ
A00220
A00330
A00440

〔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
答えと解説を見る

✓ これが正解ウ| A | B | C | D | |---|---|---|---| | A001 | 10 | NULL | NULL | | A002 | 20 | A002 | 20 | | A003 | 30 | A003 | 30 | | A005 | 50 | NULL | NULL |

解説

左外部結合なのでRの4行を全部残し、相手が無い行はNULLです。

LEFT OUTER JOIN は左外部結合で、左に書いた表 R の行をすべて結果に残します。右の表 S に結合条件 R.X = S.X を満たす行があればその値を並べ、無ければ S 側の列を NULL にします。R の行を上から見ると、A001 は S に無いので C と D が NULL、A002 と A003 は S にあるのでそれぞれの値が入り、A005 も S に無いので NULL になります。結果は R と同じ4行です。S にだけある A004 は、左の表に行が無いので結果に出てきません。結合の種類によって、どちらの表の行が必ず残るかが変わる点を押さえておきます。

ほかの選択肢はなぜ違うのか

出典:令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)