多表查询 -- -- 1、返回拥有员工的部门名、部门号。 -- 错误 -- 需要员工信息和部门信息,连接emp和dept -- select ename,emp.deptno,dname from emp,dept -- where emp.deptno=dept.deptno -- 要部门名和部门号, -- 拥有员工,在员工表中,有人使用这个部门号 -- select * from dept where deptno in(select DISTINCT deptno from emp ) -- -- 2、工资水平多于‘鲁班七号’的员工信息。 -- 要员工信息,查员工表 -- 条件,工资多余鲁班七号 -- 查询鲁班七号的工资 -- select * from emp where sal>(select sal from emp where ename='鲁班七号') -- -- 3、返回员工和所属上级的姓名。 -- select e.ename eename,e.job ejob,m.ename mename,m.job mjob,m.mgr mmgr from emp e,emp m -- where e.mgr=m.empno -- 一个表中有自己的id,和上级的id,使用自关联 select ee.ename eename ,ee.job eejob,mm.ename mmname,mm.job mmjob,pp.ename ppname,pp.job ppjob from emp ee ,emp mm,emp pp where ee.mgr=mm.empno and mm.mgr=pp.empno and (mm.job='经理' or pp.job='经理') -- -- 4、返回雇员的雇佣日期早于其上级雇佣日期的员工及其上级姓名。 -- select e.ename ename,e.job ejob,e.HIREDATE,m.ename mename,m.job mjob,m.HIREDATE -- from emp e,emp m where e.mgr=m.EMPNO and e.HIREDATE<m.HIREDATE -
|