为第 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 行已更新
这里的问题是为什么我的解决方案是错误的
1) 找出 10 部门中谁的工资最低 从 emp2 中选择 min(sal),其中 deptno = 10--
2) 为第 10 部门工资最低的员工增加 1% 的工资 所以, 更新员工集 sal = sal + (sal* 1/100) 在哪里 sal =(从 emp2 中选择 min(sal),其中 deptno = 10)
最佳答案
如果主查询中没有 deptno=10
条件,您将更新仅与工资金额匹配的所有员工。这就是为什么正确答案对于子查询和主查询都具有该条件。
关于mysql - 为第 10 部门工资最低的员工增加 1% 的工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890632/