[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
答え ア
【解説】
結果から“文書”表の作成者IDと承認者IDの氏名を“社員”表から取り出して結合させているので、使用するのは外部結合の「OUTER JOIN」で、この2つの基準となるのは“文書”表になるので、SQL文としては
SELECT 文書ID, 作成者ID, A.氏名 AS 作成者氏名
承認者ID, B.氏名 AS 承認者指名 FROM 文書 LEFT OUTER JOIN 社員 A ON 文書.作成者ID = A.社員ID
LEFT OUTER JOIN 社員 B ON 文書.承認者ID = B.社員ID
(ア)になる。
【キーワード】
・外部結合
【キーワードの解説】
外部結合(OUTER JOIN)
SQL文として
FROM 表1 LEFT OUTER JOIN 表2
ON (表1.列A = 表2.列B)
と指定した場合、表1の列Aにしかないデータも検索されます。
FROM 表1 RIGHT OUTER JOIN 表2
ON (表1.列A = 表2.列B)
と指定した場合、表2の列Bにしかないデータも検索されます。