質問: 翔泳社オラクルマスター教科書silver 翔泳社オラクルマスター教科書silverを使ってシルバー取得の勉強をしていますが、どうもこの本の解答に納得のいかない点が多すぎで、このあいだから立て続けに質問してしまってごめんなさい。 何しろ知識が無さ過ぎて、本があっているのか、自分がおかしいのか、判断しかねるのです。 で、今日はこの問題です。 ---問題ここから--- 次の結合文の中で実行時にエラーになるものをひとつ選びなさい a.select dept.deptno,emp.ename from dept d,emp e where dept.deptno=emp.deptno; b.select ename,sal,grade from salgtade,emp where sal>=losal and sal<=hisal; c.select dept.deptno,dmp.ename from dept,emp where dept.deptno(+)=emp.deptno; d.select d.deptno,e.ename from dept d,emp e where d.deptno=e.deptno; ----問題ここまで---- で、この答えが選択肢aとなっているのですが、納得できません。 解説によれば、「from句で二つ以上の表を指定した場合、select句やwhere句で指定する列名は、どの表の列か判断できなければいけません。」 とあります。 つまり、正解は「どの表か明示的に表示していない」選択肢b だと思うのですが、やはり教科書があっていますか?? 私の考え方はどう間違っているのか、教えていただけたら嬉しいです。 どうかよろしくお願い致します☆
回答: 回答ではありませんが・・・。 はっきり言って、専門書の内容の間違いなんて珍しくも何ともありません。 ご質問のケースがやっかいなのは、その書籍が正しくないとしても、それを検証する手段がないことです。 実務なら、そのsqlを実際に実行してみれば簡単にわかることですが。 確認できないことで悩んでも仕方がない(時間の無駄)と思います。 最近はcdの付録がついた書籍も多いので、勉強するならそういう本を選んだ方がよいのでは? もしお手元にオラクルの環境があるなら、実際に確認するのが一番です。 (胸の支えがスッキリすることでしょう) とは言っても、問題文で表(テーブル)の定義が示されていなければ、それもむずかしいかもしれませんが・・・。 どうしても納得がいかないなら、書面かメールで出版社に問い合せて見ましょう。(ただし、誠意のある回答は期待しないことです) ・・・結局、何が言いたいのかよくわからないコメントになってしまいましたが、参考になれば幸いです・・・。