SQL查询语句2

2、列出与“SCOTT”从事相同工作的所有员工及部门名称,部门人数,领导姓名。

◆确定要使用的数据表:

●emp表:员工信息。

●dept表:部门名称。

●emp表:统计出部门人数。

●emp表:找到领导信息。

◆确定已知的关联字段:

●雇员和部门:emp.deptno = dept.deptno

●雇员和领导:emp.mgr = memp.empno

第一步:先找到SCOTT的工作,此查询返回单行单列的数据。

SELECT job FROM emp WHERE ename='SCOTT' ;

第二步:找到 从事该工作 的雇员信息。单行单列,一般用于WHERE或HAVING上,

但是,现在没有统计需要,所以,只在WHERE子句上使用。

SELECT e.ename, e.job, e.sal

FROM emp e

WHERE job=(

SELECT job FROM emp WHERE ename='SCOTT' ) ;

第三步:查找到对应的部门名称信息,加入dept表,同时要增加:消除掉显示的笛卡尔积的条件。

SELECT e.ename, e.job, e.sal, d.dname

FROM emp e, dept d

WHERE job=(

SELECT job FROM emp WHERE ename='SCOTT' )

AND e.deptno=d.deptno ;

第四步:部门人数可以单独进行统计,而后,在FROM子句之后使用。

SELECT e.ename, e.job, e.sal, d.dname, temp.count

FROM emp e, dept d, (

SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp

WHERE e.job=(

SELECT job FROM emp WHERE ename='SCOTT' )

AND e.deptno=d.deptno

AND temp.dno=d.deptno ;

第五步:查找出雇员对应的领导信息,使用emp表实现自身关联操作。

SELECT e.ename, e.job, e.sal, d.dname, temp.count, m.ename mgrname

FROM emp e, dept d, (

SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp, emp m

WHERE e.job=(

SELECT job FROM emp WHERE ename='SCOTT' )

AND e.deptno=d.deptno

AND temp.dno=d.deptno

AND e.mgr=m.empno ;

第六步:消除掉SCOTT数据。

SELECT e.ename, e.job, e.sal, d.dname, temp.count, m.ename mgrname

FROM emp e, dept d, (

SELECT deptno dno, COUNT(empno) count FROM emp GROUP BY deptno ) temp, emp m

WHERE e.job=(

SELECT job FROM emp WHERE ename='SCOTT' )

AND e.deptno=d.deptno

AND temp.dno=d.deptno

AND e.mgr=m.empno

AND e.ename<>'SCOTT' ;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,932评论 0 4
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,289评论 0 0
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,762评论 0 2
  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 1,417评论 0 2
  • ——读《白夜行》有感 我们是真的无法摆脱命运的枷锁吗?你相信宿命论吗? 在读这本书之前,我始终坚信...
    爱是与你难相处阅读 606评论 0 1