在10区内薪水最低的员工增加1%的工资

时间:2014-04-06 06:13:46

标签: mysql sql

在10月份获得最低工资的员工增加1%的工资

我的解决方案

update emp set sal = sal + (sal* 1/100) 
where 
sal = (select min(sal) from emp2 where deptno = 10)

- 更新了1行

但是正确的解决方案是

update emp set sal = sal + (sal* 1/100) 
where 
sal = (select min(sal) from emp2 where deptno = 10)
and deptno=10

- 更新了1行

这里的问题是为什么mysolution是错误的

1)找出谁在deptno 10中制作最低的sal 从emp2中选择min(sal),其中deptno = 10 -

2)在10月份获得最低工资的员工增加1%的工资 所以, update emp set sal = sal +(sal * 1/100) 哪里 sal =(从emp2中选择min(sal),其中deptno = 10)

1 个答案:

答案 0 :(得分:2)

如果主查询中没有deptno=10条件,您将更新仅匹配工资金额的所有员工。这就是为什么正确的答案对于子查询和主查询都有这个条件。