emp name mgr
201 jack 203
202 tom  203
203 jojo 204
204 luck 205
205 king emp 员工编号 MGR 上司的员工编号 用SELECT 查出 员工的名字和他上司的名字 king是老大没有上司name mgrname
jack jojo
tom  jojo
jojo luck
luck tom
tom  king
king 
没多少分 不好意思

解决方案 »

  1.   

    SQL> SELECT a.ename,b.ename mgrname FROM emp a,emp b
      2  WHERE a.mgr=b.empno;ENAME      MGRNAME
    ---------- ----------
    SMITH      FORD
    ALLEN      BLAKE
    WARD       BLAKE
    JONES      KING
    MARTIN     BLAKE
    BLAKE      KING
    CLARK      KING
    SCOTT      JONES
    TURNER     BLAKE
    ADAMS      SCOTT
    JAMES      BLAKEENAME      MGRNAME
    ---------- ----------
    FORD       JONES
    MILLER     CLARK已选择13行。SQL>
      

  2.   

    呵呵,scott.emp,久仰大名,如雷贯耳。不过king这条记录没查出来,改下:
    SQL> SELECT a.ename,b.ename mgrname FROM emp a,emp b
      2  WHERE (a.mgr=b.empno AND a.mgr IS NOT NULL)
      3  UNION
      4  SELECT a.ename,NULL FROM emp a
      5  WHERE a.mgr IS NULL;ENAME      MGRNAME
    ---------- ----------
    ADAMS      SCOTT
    ALLEN      BLAKE
    BLAKE      KING
    CLARK      KING
    FORD       JONES
    JAMES      BLAKE
    JONES      KING
    KING
    MARTIN     BLAKE
    MILLER     CLARK
    SCOTT      JONESENAME      MGRNAME
    ---------- ----------
    SMITH      FORD
    TURNER     BLAKE
    WARD       BLAKE已选择14行。SQL>