mysql - 为第 10 部门工资最低的员工增加 1% 的工资

标签 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 行已更新

这里的问题是为什么我的解决方案是错误的

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/

相关文章:

python - 从 flask 中访问 mysql

mysql - ASP .Net 2,IIS 8 64 位上的经典管道可扩展性问题

mysql - 带有主键的关键字生成唯一标识

sql - 如何表示(可选)一对(可选)关系

sql - 从最小值开始分组为 5 秒的间隔

MYSQL select语句具有非唯一主键

mysql:如何从两个表中选择

sql - ORA-01735 : invalid ALTER TABLE option - Toad

mysql - 从字符串 MYSQL 中删除多个尾随和前导关键字

sql - 使用日期作为 SQL 过滤器