"社員取得資格"表に対し、SQL文を実行して結果を得た。SQL文のaに入れる字句はどれか。 社員取得資格(社員コード,資格): S001,FE / S001,AP / S001,DB / S002,FE / S002,SM / S003,FE / S004,AP / S005,NULL。結果(社員コード,資格1,資格2): S001,FE,AP / S002,FE,NULL / S003,FE,NULL。 〔SQL文〕SELECT C1.社員コード, C1.資格 AS 資格1, C2.資格 AS 資格2 FROM 社員取得資格 C1 LEFT OUTER JOIN 社員取得資格 C2 [a]

外部結合の絞り込みはON句へ。WHERE句だと内部結合化する

頻出データベーススペシャリスト試験2021年度 秋期 午前II8/SQL / 問合せ

社員取得資格:社員コード資格
S001FE
S001AP
S001DB
S002FE
S002SM
S003FE
S004AP
S005NULL
結果:社員コード資格1資格2
S001FEAP
S002FENULL
S003FENULL

選択肢

正解と解説

正解: ON C1.社員コード = C2.社員コード AND C1.資格 = 'FE' AND C2.資格 = 'AP' WHERE C1.資格 = 'FE'

同じ表を左外部結合し、左側にFEの行、右側に同じ社員のAPの行を対応付ける形にすればよい。結合条件をON句に書けば対応しない行も左側は残り、右側はNULLになる。そのうえでWHERE句で左側をFEの行に限定すれば、FE保有者ごとにAPの有無を並べた結果が得られる。よってアが正しい。

選択肢ごとの解説

出典:令和3年度 秋期 データベーススペシャリスト試験 午前II 問8(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。