人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

OracleMasterのSQLの問題集について質問です。次のような問題がありました。
>次のemp表から従業員の名前とその上司の名前を合わせて表示したい。夫々列別名は「Emp」「Mgr」にします。mgr列には各従業員の上司のemp_idが格納されています。次のSQL文のうち正しいものを1つ選べ。
A)SELCT e.name "Emp", m.ename "Mgr"
FROM emp e, emp m
WHERE e.mgr = m.emp_id;
B)SELCT e.name "Emp", m.ename "Mgr"
FROM emp e, emp m
WHERE e.emp_id = m.mgr;
(他肢は誤りの判別が容易だった為省略)
正解はAとなっています。しかし私にはA)とB)の違いが判りません。どのように考えれば良いかどなたか説明頂ければ幸いです。

●質問者: わにかめ78
●カテゴリ:コンピュータ 学習・教育
✍キーワード:name SQL 上司 名前
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●20ポイント

結果選択される行はまったく同じだが、列名が異なる。

同じテーブルを e,m の2つの名前で呼んでいるのだから

BをAと同じにする為に修正するとしたら、1行目を

SELCT m.name "Emp", e.ename "Mgr" 

にすべき。

つまりBは "Emp","Mgr" といった列名が逆。


2 ● kn1967
●50ポイント ベストアンサー

>従業員の名前とその上司の名前を合わせて表示したい。

>列別名は「Emp」「Mgr」にします。

>SELCT e.name "Emp", m.ename "Mgr"

Empが従業員名で、Mgrが上司名なのですから、

e.name "Emp" ということから e が従業員のデータを示し、

m.ename "Mgr" ということからは m が上司のデータを示していることが判ると思います。


>mgr列には各従業員の上司のemp_idが格納されています。

eが従業員だと判ったので『e.mgr = m.emp_id』で結びつければ・・・で、答えはAとなります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ