令和4年秋期試験問題 午前Ⅱ 問6

"文書"表,"社員"表から結果を得るSQL文はどれか。
06_1.gif
〔結果〕
06_2.gif
〔SQL文〕
06_3.gif

  • 06a.gif
  • 06i.gif
  • 06u.gif
  • 06e.gif
正解 問題へ
分野:テクノロジ系
中分類:データベース
小分類:データ操作
解説
〔結果〕を見ると、作成者氏名として"文書"表の作成者IDに対応する"社員"表の氏名を表示し、承認者氏名として"文書"表の承認者IDに対応する"社員"表の氏名を表示していることがわかります。また、作成者ID:500の行の作成者氏名をNULLとして表示していることから、"社員"表に対応する社員IDがない行についても結果に出力しなければなりません。単純に内部結合(INNER JOIN)をしてしまうと、作成者ID:500の行が消えてしまうので、左外部結合(LEFT OUTET JOIN)を使うことになります。
  • 正しい。"文書"表と"社員"表を作成者IDをキーとして左外部結合し、"文書"表と"社員"表を承認者IDをキーとして左外部結合しています。これにより作成者IDと作成者氏名、承認者IDと承認者氏名が紐付けられ、かつ、"社員"表に対応する行がない場合にはNULLが表示されることになります。
    06aa.gif
  • 右外部結合だと、"社員"の社員ID:500の行が消えてしまうため不適切です。2段階で右外部結合が行われた結果、SQLの実行結果としては以下が出力されます。
    06ii.gif
  • 表のエイリアス定義(A・B)が重複しているため、構文エラーとなります。
  • 内部結合ではキーの値が両方の表に共通している行のみが残ります。"文書"表"にしか存在しない社員ID:500の行が消えてしまうため不適切です。
    06ee.gif

Pagetop