"文書"表、"社員"表から結果を得るSQL文のaに入れる字句はどれか。

残したい側を左に置いた左外部結合を別名で繰り返す

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

「文書」表(文書ID, 作成者ID, 承認者ID)に4行、「社員」表(社員ID, 氏名)に4行のデータ例、および両者を結合した「結果」表(文書ID, 作成者ID, 作成者氏名, 承認者ID, 承認者氏名)が示されている。結果表の4行目は作成者ID=500が社員表に存在しないため作成者氏名がNULLになっている。SQL文は「SELECT 文書ID, 作成者ID, A.氏名 AS 作成者氏名, 承認者ID, B.氏名 AS 承認者氏名 FROM [a]」という形。
「文書」表(文書ID, 作成者ID, 承認者ID)に4行、「社員」表(社員ID, 氏名)に4行のデータ例、および両者を結合した「結果」表(文書ID, 作成者ID, 作成者氏名, 承認者ID, 承認者氏名)が示されている。結果表の4行目は作成者ID=500が社員表に存在しないため作成者氏名がNULLになっている。SQL文は「SELECT 文書ID, 作成者ID, A.氏名 AS 作成者氏名, 承認者ID, B.氏名 AS 承認者氏名 FROM [a]」という形。
文書表:
文書ID作成者ID承認者ID
1100200
2100300
3200400
4500400
社員表:
社員ID氏名
100山田太郎
200山本花子
300川上一郎
400渡辺良子
結果:
文書ID作成者ID作成者氏名承認者ID承認者氏名
1100山田太郎200山本花子
2100山田太郎300川上一郎
3200山本花子400渡辺良子
4500NULL400渡辺良子

選択肢

正解と解説

正解: 文書 LEFT OUTER JOIN 社員 A ON 文書.作成者ID = A.社員ID LEFT OUTER JOIN 社員 B ON 文書.承認者ID = B.社員ID

結果には、社員表に対応する社員がいない作成者IDの行も残り、その氏名がNULLになっている。文書表の行をすべて残す必要があるので、文書表を左側に置いた左外部結合を、作成者用と承認者用の別名で2回続けて行えばよい。これを表しているのがアである。

選択肢ごとの解説

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

同じ分野の他の問題

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