"文書"表、"社員"表から結果を得るSQL文のaに入れる字句はどれか。
残したい側を左に置いた左外部結合を別名で繰り返す
頻出データベーススペシャリスト試験/2022年度 秋期 午前II 問6/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]」という形。選択肢
- ア文書 LEFT OUTER JOIN 社員 A ON 文書.作成者ID = A.社員ID LEFT OUTER JOIN 社員 B ON 文書.承認者ID = B.社員ID
- イ文書 RIGHT OUTER JOIN 社員 A ON 文書.作成者ID = A.社員ID RIGHT OUTER JOIN 社員 B ON 文書.承認者ID = B.社員ID
- ウ文書, 社員 A, 社員 B LEFT OUTER JOIN 社員 A ON 文書.作成者ID = A.社員ID LEFT OUTER JOIN 社員 B ON 文書.承認者ID = B.社員ID
- エ文書, 社員 A, 社員 B WHERE 文書.作成者ID = A.社員ID AND 文書.承認者ID = B.社員ID
正解と解説
正解:ア 文書 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/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。