SQL> select e.ename,e2.ename from  emp e join emp e2 on(e.mgr=e2.empno);
 
ENAME      ENAME
---------- ----------
FORD       JONES
SCOTT      JONES
TURNER     BLAKE
ALLEN      BLAKE
WARD       BLAKE
JAMES      BLAKE
MARTIN     BLAKE
MILLER     CLARK
ADAMS      SCOTT
BLAKE      KING
JONES      KING
CLARK      KING
SMITH      FORD
 
13 rows selected
 
SQL> select e.ename,e2.ename from  emp e join emp e2 on(e.empno=e2.mgr);
 
ENAME      ENAME
---------- ----------
JONES      FORD
JONES      SCOTT
BLAKE      TURNER
BLAKE      ALLEN
BLAKE      WARD
BLAKE      JAMES
BLAKE      MARTIN
CLARK      MILLER
SCOTT      ADAMS
KING       BLAKE
KING       JONES
KING       CLARK
FORD       SMITH
 
13 rows selected
 各位大哥帮忙看看为什么两列的数据会反过来的,为什么等值式反过来会这样

解决方案 »

  1.   

    上面条件是e.mgr=e2.empno,即e2.ename为e.ename的上级直接领导。
    下面条件是e.empno=e2.mgr,即e.ename为e2.ename的上级直接领导。上面连接的驱动表e(即一般雇员),下面的连接的驱动表e(是领导)自己理解一下。
      

  2.   

    上面条件是e.mgr=e2.empno,即e2.ename为e.ename的上级直接领导。
    下面条件是e.empno=e2.mgr,即e.ename为e2.ename的上级直接领导。上面连接的驱动表e(即一般雇员),下面的连接的驱动表e(是领导)自己理解一下。
      

  3.   

    上面条件是e.mgr=e2.empno,即e2.ename为e.ename的上级直接领导。
    下面条件是e.empno=e2.mgr,即e.ename为e2.ename的上级直接领导。上面连接的驱动表e(即一般雇员),下面的连接的驱动表e(是领导)自己理解一下。
      

  4.   


    你怎么知道他是上面条件是e.mgr=e2.empno,即e2.ename为e.ename的上级直接领导。
    下面条件是e.empno=e2.mgr,即e.ename为e2.ename的上级直接领导。
      

  5.   

    SQL> desc emp
    Name     Type         Nullable Default Comments 
    -------- ------------ -------- ------- -------- 
    EMPNO    NUMBER(4)                     员工编号           
    ENAME    VARCHAR2(10) Y                员工姓名 
    JOB      VARCHAR2(9)  Y                工作类型 
    MGR      NUMBER(4)    Y                经理编号 
    HIREDATE DATE         Y                入职日期         
    SAL      NUMBER(7,2)  Y                薪水 
    COMM     NUMBER(7,2)  Y                备注     
    DEPTNO   NUMBER(2)    Y                部门编号