A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王亮 黑马帝   /  2011-7-21 15:57  /  2585 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
  
一个上司有多个下属,上司也有他的上司,如何查出一个上司的所有下属呢?又如何查出一个员工所有的上司呢(就是上司、上司的上司……)?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 这问题可以加分

查看全部评分

1 个回复

倒序浏览
黑马网友  发表于 2011-7-21 16:42:43
沙发
这个问题,我只能回答第一问:[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而已。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 这同学,我给分手都给软了

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马