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