令和4年度 秋期 情報処理安全確保支援士試験 午前II 問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

図の説明テキスト
R
| X | Y |
|---|---|
| A001 | 10 |
| A002 | 20 |
| A003 | 30 |
| A005 | 50 |

図の説明テキスト
S
| X | Z |
|---|---|
| A002 | 20 |
| A003 | 30 |
| A004 | 40 |
解答・解説
正解: ウ.
本問は、SQLの LEFT OUTER JOIN (左外部結合)の動作を問う問題です。
左外部結合(LEFT OUTER JOIN)の特性
FROM R LEFT OUTER JOIN S ON R.X = S.X というSQL文は、表R(左表)と表S(右表)を X 列の値で結合します。
- 左表(R)のすべての行 が結果に必ず含まれます。
- 結合条件(
R.X = S.X)に一致する表S(右表)の行があれば、そのデータを結合して表示します。 - 一致する表Sの行が存在しない場合、表S側の列(このSQLでは
S.X AS CおよびS.Z AS D)には NULL(空値) が入ります。
したがって、実行結果は「表Rの全行が抽出され、表Sに該当するデータがない行のC列・D列が空欄(NULL)」となっている表になります。
各選択肢の解説
- ア:誤り。INNER JOIN(内部結合)など、両方の表に一致するデータのみが抽出されているか、異なる結合条件の結果になっています。
- イ:誤り。結合結果の行数や空値の入り方が LEFT OUTER JOIN の仕様と合致していません。
- ウ:正解。表Rの全レコードが出力されており、表Sに一致するデータがない行について
CとDの列が正しく空値(NULL)になっています。 - エ:誤り。表S(右表)を基準とした RIGHT OUTER JOIN(右外部結合)や、FULL OUTER JOIN の結果などであり、左表の全行抽出という条件を満たしていません。



