- 締切済み
自己結合について
下記SQL文のSELECT句、m.empnoによって左項DEPTNOのMGR値がきちんと出力される理屈がよく分かりません。 回答のほどよろしくお願い致します。 select e.empno, m.empno from emp e join emp m on(e.mgr = m.empno) EMPNO EMPNO ---------- ---------- 7698 7839 7782 7839 7566 7839 7902 7566 7369 7902 7499 7698 7521 7698 7654 7698 7788 7566 7844 7698 7876 7788 7900 7698 7934 7782 13行が選択されました。 SQL> describe emp; 名前 NULL? 型 ------------------------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NOT NULL NUMBER(2)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>下記SQL文のSELECT句、m.empnoによって左項DEPTNOのMGR値が >きちんと出力される理屈がよく分かりません。 SQLにDEPTNOは出てこないので、説明がなんか変です。 select e.empno, m.empno from emp e join emp m on(e.mgr = m.empno) と select e.empno, m.empno from emp e,emp m where e.mgr = m.empno は同じ意味のSQLです。(構文の違い) 普通に、empの内容を持つ、2つの表(eとm)を内部結合したと思えば良いので 別に理解出来ないことはないと思うのですが。
お礼
回答ありがとうございます。 「DEPTNO」はこちらの間違いです。 とりあえず下記のように全体の表示させると理解することが出来ました。 select * from emp e,emp m where e.mgr = m.empno