我有一张表,里面有价格。如果该值大于所有价格的平均值,我需要更新价格。这是我正在使用的查询:
update parts
set price = price*0.85
where price > select avg(price) from parts;
我不断收到错误 1093:您无法在 FROM 子句中指定要更新的目标表“parts”。我尝试使用(从零件中选择平均(价格))作为 A 但出现相同的错误
最佳答案
如果子查询尝试使用与主查询相同的表,则不能在 WHERE
子句中使用子查询。你必须加入它。
UPDATE parts AS p1
JOIN (SELECT avg(price) AS avg_price
FROM parts) AS p2
ON p1.price > p2.avg_price
SET p1.price = p1.price * 0.85
关于mysql - 错误 1093 使用数据聚合更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46594549/