平成27年度 春期 データベーススペシャリスト試験 午前II 問8
2025年6月30日
【問題8】
社員取得資格表に対し、SQL文を実行して結果を得た。SQL文の a に入る字句はどれか。
【解説】
1. JOIN 条件と WHERE 条件
– `LEFT OUTER JOIN` では、左側のテーブル(C1)のすべての行を保持し、右側のテーブル(C2)の条件に一致する行を結合します。
– 条件 `C1.資格 = 'FE’` および `C2.資格 = 'AP’` を適用し、指定の結果を得る必要があります。
2. 結果の確認
– 資格1が 'FE’ である行を対象とし、資格2には 'AP’ がある場合、それを結合します。
– LEFT OUTER JOIN のため、資格2に該当するデータがない場合でも資格1のデータは保持されます。
3. 選択肢の検討
ア: WHERE 条件で C1.資格 = 'FE’ を指定しており、資格1を 'FE’ に限定している。資格2が 'AP’ の場合のみ結果に含まれる。
→ 正しい。
イ: WHERE 条件に C1.資格 IS NOT NULL を指定していますが、この条件は結果に影響を与えないため不要です。
→ 誤り。
ウ: WHERE 条件で C1.資格 = 'AP’ を指定しているため、資格1が 'AP’ の場合のみ結果に含まれます。
→ 誤り。
エ: WHERE 条件が C1.資格 = 'FE’ AND C2.資格 = 'AP’ となっており、LEFT OUTER JOIN の挙動を活かせず資格2が NULL の行が結果から除外されます。
→ 誤り。
【答え】
ア: WHERE 条件で C1.資格 = 'FE’ を指定しており、資格1を 'FE’ に限定している。資格2が 'AP’ の場合のみ結果に含まれる。
出典:平成27年度 春期 データベーススペシャリスト試験 午前II 問8