問題ID:19907について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2020-7-28 11:00
Kazumi94  半人前   投稿数: 6
SELECT句に記載されている「manager_name」についてですが、EMPLOYEES表、JOBS表のどちらにも無い列名と思われるのですが、私の方で見落としているだけになりますでしょうか。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-7-28 12:13
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
SELECT句に記載されている「manager_name」についてですが、EMPLOYEES表、JOBS表のどちらにも無い列名と思われるのですが、私の方で見落としているだけになりますでしょうか。
はい、どちらの表にもないです。見落としじゃないですよ。

ただ、設問のSQLをよく見ると
SELECT e.employee_name, m.employee_name manager_name, j.job_name
(略)
となっていますね。これは「m.employee_name」に manager_name という別名をつけているのです。
こんな感じで、列名の後ろに別名を指定するだけで列名を変えることができます。
SQL> SELECT 'TEST WORD' FROM DUAL;

'TESTWORD
---------
TEST WORD

SQL> SELECT 'TEST WORD' COLNAME FROM DUAL;

COLNAME
---------
TEST WORD

SQLの意図としては
e.employee_name:従業員(本人)の名前
m.employee_name:従業員の上司の名前
なので、同じ employee_name とならないようにしているんですね。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-7-29 9:56
Kazumi94  半人前   投稿数: 6
ご回答ありがとうございます。

列の別名としてmanager_nameを指定をするという点に思い至っておりませんでした。
同じ列名がある場合に別の名前をつけて区別するということはありえるパターンですね。

わかりやすい丁寧な解説ありがとうございます。
このタイプの問題に気をつけるようにしたいと思います。

ありがとうございました。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.