mysql查询最低工资的经历_查看员工信息每个部门的最低工资

本文探讨了在SQL中如何使用子查询和IN关键字查询每个部门的最低工资雇员信息。通过示例说明了当两个部门存在相同最低工资时,IN关键字可能出现的问题,而子查询则能避免此类错误。通过修改数据并比较查询结果,强调了关联子查询相对于IN关键字的准确性与可靠性。
摘要由CSDN通过智能技术生成

如果说:

查询每一个部门最低工资的雇员信息

关联子查询方法

1 查询每一个部门的最低工资

select deptno, min(sal) min_sal from emp group by deptno;

876250bafdef109a18d686d67328ece7.png

2 同最低工资关联人员信息

select e.* from emp e, (select deptno, min(sal) min_sal from emp group by deptno) s

where e.deptno = s.deptno

and e.sal = s.min_sal;

d158278e1b89bb4dfcf2ae801a426f28.png

inkeyword方法

inkeyword是这样的场景easy想到的一个方法,先查询出部门的最低工资,然后匹配最低工资的雇员信息。

select * from emp where sal in (select min(sal) from emp group by deptno);

b240b7a4245f6f54cd43449aa499fd30.png

错误解析

in 方法存在一个问题,当两部门中有多个同样的工资值时会产生错误的结果

如今讲emp 中empno 为 1234 的用户部门改动为 20

update emp set deptno = 20 where empno = 1234;

然后再使用in查询方法查部门最低工资的员工信息

SouthEast

这时,empno 为 1234 的员工工资与deptno为10的部门最低工资同样,所以使用in查询就查出了这个最低工资。

可是使用 关联子查询 的方法查询,

31361be40871b7d463617223c27bd8dc.png

对比总结,在班上似询问,警告in keyword直接查询,相反,使用一个相关子查询,检查一步一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值