黑马程序员技术交流社区

标题: emp表中的一个问题 [打印本页]

作者: 王亮    时间: 2011-7-21 15:57
标题: emp表中的一个问题
Oracle典型的表是emp
  
EMPNO
  
  
ENAME
  
  
JOB
  
  
MGR
  
  
HIREDATE
  
  
SAL
  
  
COMM
  
  
DEPTNO
  
  7369
  
  SMITH
  
  CLERK
  
  7902
  
  1980-12-17
  
  800.00
  
  

  
  20
  
  7499
  
  ALLEN
  
  SALESMAN
  
  7698
  
  1981-2-20
  
  1600.00
  
  300.00
  
  30
  
  7521
  
  WARD
  
  SALESMAN
  
  7698
  
  1981-2-22
  
  1250.00
  
  500.00
  
  30
  
  7566
  
  JONES
  
  MANAGER
  
  7839
  
  1981-4-2
  
  2975.00
  
  

  
  20
  
  7654
  
  MARTIN
  
  SALESMAN
  
  7698
  
  1981-9-28
  
  1250.00
  
  1400.00
  
  30
  
  7698
  
  BLAKE
  
  MANAGER
  
  7839
  
  1981-5-1
  
  2850.00
  
  

  
  30
  
  7782
  
  CLARK
  
  MANAGER
  
  7839
  
  1981-6-9
  
  2450.00
  
  

  
  10
  
  7788
  
  SCOTT
  
  ANALYST
  
  7566
  
  1987-4-19
  
  3000.00
  
  

  
  20
  
  7839
  
  KING
  
  PRESIDENT
  
  

  
  1981-11-17
  
  5000.00
  
  

  
  10
  
  7844
  
  TURNER
  
  SALESMAN
  
  7698
  
  1981-9-8
  
  1500.00
  
  0.00
  
  30
  
  7876
  
  ADAMS
  
  CLERK
  
  7788
  
  1987-5-23
  
  1100.00
  
  

  
  20
  
  7900
  
  JAMES
  
  CLERK
  
  7698
  
  1981-12-3
  
  950.00
  
  

  
  30
  
  7902
  
  FORD
  
  ANALYST
  
  7566
  
  1981-12-3
  
  3000.00
  
  

  
  20
  
  7934
  
  MILLER
  
  CLERK
  
  7782
  
  1982-1-23
  
  1300.00
  
  

  
  10
  
一个上司有多个下属,上司也有他的上司,如何查出一个上司的所有下属呢?又如何查出一个员工所有的上司呢(就是上司、上司的上司……)?
作者: 匿名    时间: 2011-7-21 16:42
这个问题,我只能回答第一问:[code=sql]SELECT t1.empno,t1.ename,t2.empno,t2.ename
FROM emp t1,emp t2
WHERE t1.empno = t2.mgr and t1.empno=7839;[/code]其中t1代表上司表,t2代表员工表。 代码的含义是,查询出编号为7839的人的所有下属。

第二问:
其实,没必要将所有上司都查出来,只要查询出某个员工的顶头上司即可:[code=sql]SELECT t1.empno,t1.ename,t2.empno,t2.ename
FROM emp t1,emp t2
WHERE t1.empno = t2.mgr and t2.empno=7369;[/code]其中t1代表上司表,t2代表员工表。 代码的含义是,查询出编号为7369的人的顶头上司。
查询的结果为:[code=sql]7902  FORD  7369  SMITH  [/code]若用户想继续看FORD的上司,那么再执行一遍上面的代码即可,无非是把7369换成了7902而已。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2