2022年 秋期 データベーススペシャリスト 午前 問6

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

[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にしかないデータも検索されます。

もっと、「外部結合」について調べてみよう。

戻る 一覧へ 次へ