小编典典

在多个表中使用sum()结果进行MYSQL更新

sql

这一点效果很好:

 SELECT products_id, sum(attributes_stock) 
 FROM products_attributes 
 GROUP BY products_id

它将attributes_stock列中的所有字段组加在一起。

我遇到的麻烦是得到此结果来更新另一个表中的另一列。

这就是我所拥有的:

 UPDATE products, products_attributes 
 SET products.products_quantity = sum(products_attributes.attributes_stock) GROUP BY products_attributes.products_id 
 WHERE products.products_id = products_attributes.products_id

任何建议,不胜感激。


阅读 298

收藏
2021-03-23

共1个答案

小编典典

您不能在group by内部使用update语句。您需要使用子选择进行分组。

像这样的东西:

UPDATE products p,( SELECT products_id, sum(attributes_stock)  as mysum
                   FROM products_attributes GROUP BY products_id) as s

   SET p.products_quantity = s.mysum
  WHERE p.products_id = s.products_id
2021-03-23