0
为什么这条sql指令不起作用...?更新 - where子句中的聚合函数
我想更新了15%的工资谁拥有的薪水低于平均水平的所有员工...
UPDATE Employers SET salary=salary * 1.15 WHERE salary < (SELECT AVG(salary) FROM Employers);
感谢。
为什么这条sql指令不起作用...?更新 - where子句中的聚合函数
我想更新了15%的工资谁拥有的薪水低于平均水平的所有员工...
UPDATE Employers SET salary=salary * 1.15 WHERE salary < (SELECT AVG(salary) FROM Employers);
感谢。
可能是你需要一个别名
UPDATE Employers
SET salary=salary * 1.15
CROSS JOIN ((SELECT AVG(salary) avg_salary FROM Employers)) t
WHERE salary < t.avg_salary;
这是什么给你的错误?你最后错过了一个''''。 '(SELECT AVG(salary)FROM Employers);' – Santi
对不起:)。但这不是问题...在MySQL中,我有以下消息: #1093 - 表'雇主'被指定两次,既作为'UPDATE'的目标,也作为数据的单独来源。 – nosperov
不幸的是,你似乎在争夺MySQL的限制:[“你无法更新表并从子查询中的同一个表中选择。”](http://dev.mysql.com/doc/refman/5.7/ EN/update.html)。不是说没有解决方案,个人我只是不知道它。知道更多的人可能能够为您提供解决方案! – Santi