Mysql总结-2 多表查询

emp表:
在这里插入图片描述dept表:

在这里插入图片描述
salgrade表:
在这里插入图片描述

  1. 返回拥有员工的部门名、部门号。
    select * from dept where DEPARTNO in(select DISTINCT deptno from emp);

在这里插入图片描述
2. 工资水平多于‘鲁班七号’的员工信息。
select * from emp where sal>(select sal from emp where ename=‘鲁班七号’);

在这里插入图片描述

  1. 返回员工和所属上级的姓名。
    select e.ename eename,e.job ejob,m.ename mename,m.job mjob from emp e,emp m where e.mgr=m.empno;

在这里插入图片描述
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;

在这里插入图片描述
4. 返回雇员的雇佣日期早于其上级雇佣日期的员工及其上级姓名。
select e.ename eename,e.job ejob,e.hiredate ehiredate,m.ename mename,m.job mjob,m.hiredate mhiredate from emp e,emp m where e.mgr=m.empno and e.hiredate<m.hiredate;

在这里插入图片描述
5. 返回员工姓名及其所在的部门名称。
select e.ename eename, d.dname ddeptno from emp e,dept d where e.deptno=d.departno;

在这里插入图片描述
6. 返回从事’职员’工作的员工姓名和所在部门名称。
select e.ename eename, d.dname ddeptno from emp e,dept d where e.deptno=d.departno and e.job=‘职员’;
在这里插入图片描述7. 返回部门号,部门名称及其本部门的最低工资。
select d.departno ddeptno,d.dname ddname,m.min mmmin from dept d,(select min(sal) min,deptno from emp group by deptno) as m where d.departno = m.deptno;

select dept.DEParTNO,dept.DNAME,min(sal) from emp,dept
WHERE emp.deptno=dept.departno
group by dept.departno;

在这里插入图片描述在这里插入图片描述
8. 返回销售部所有员工的姓名。
select d.departno,d.dname, e.ename from dept d,emp e where e.deptno=d.departno and d.dname=‘销售’;

在这里插入图片描述
9. 返回工资水平多于平均工资的员工。
select * from emp where sal>(select avg(sal) from emp);

在这里插入图片描述
10. 返回与‘大乔’从事相同工作的员工,不包含自己
select ename from emp where job=(select job from emp where ename=‘大乔’) and ename!=‘大乔’;

在这里插入图片描述
11. 返回与销售部门员工工资水平相同的员工姓名与工资。
select ename,job,sal from emp where sal between (select min(sal) from emp,dept where emp.deptno=dept.departno and dept.dname=‘销售’) and (select max(sal) from emp,dept where emp.deptno=dept.departno and dept.dname=‘销售’)

在这里插入图片描述
12. 返回部门号、部门名、部门所在位置及其每个部门的员工总数。
select dept.departno 部门号,dept.dname 部门,dept.loc 地点,t.t 人数 from dept,(select count(*) t,deptno from emp group by deptno) t where dept.departno=t.deptno;

在这里插入图片描述
13. 返回工资高于销售部门所有员工工资水平的员工信息。
select * from emp where sal>(select max(sal)from emp,dept where emp.deptno=dept.departno and dept.dname=‘销售’);

在这里插入图片描述
14. 返回员工的姓名、所在部门名及其工资。
select ename,sal,dname from emp left join dept on emp.deptno=dept.departno;

在这里插入图片描述15. 返回员工的详细信息。(包括部门名和工资级别)
select * from emp left join dept on emp.deptno=dept.departno left join salgrade on emp.sal between salgrade.losal and salgrade.hisal;
在这里插入图片描述
15. 返回员工工作及其从事此工作的最低工资。
select ename,job,dname, minsal from emp,(select min(sal) minsal,deptno,dname from emp,dept where emp.deptno=dept.departno group by emp.deptno) as s where emp.deptno=s.deptno;

在这里插入图片描述
16. 返回每个部门中经理的最低工资。
select t.ename,min(t.sal) from (select * from emp where job=‘经理’ order by sal)as t group by t.deptno;
注:为了看出效果,添加一行在这里插入图片描述在这里插入图片描述
查询结果:
在这里插入图片描述
17.计算出员工的年薪,并且以年薪排序。

select ename,(sal+comm)*12 ysal from emp order by ysal;
在这里插入图片描述

  1. 返回工资处于第四级别的员工的姓名。
    select ename,sal,t.losal,t.hisal from emp,(select losal,hisal from salgrade where grade=4) as t where sal between t.losal and t.hisal;

select * from emp,salgrade
where sal between losal and hisal and grade=‘4’;
在这里插入图片描述
19. 返回工资为二等级的职员名字、部门所在地、二等级员工工资的最低工资和最高工资
select ename,sal,deptno,dname,loc,grade,losal,hisal from emp left join dept on emp.deptno=dept.departno left join salgrade on sal between salgrade.losal and salgrade.hisal where grade=‘2’;
select * from emp,salgrade,dept where sal between losal and hisal and emp.deptno=dept.departno
and grade=‘2’;

在这里插入图片描述20. 工资等级多于‘王昭君’的员工信息。
select * from emp,dept,salgrade where emp.deptno=dept.departno and sal between losal and hisal and grade>(select grade from emp,dept,salgrade where emp.deptno=dept.departno and sal between losal and hisal and ename=‘王昭君’);
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值