win*_*wah 15 php mysql sql pdo
这个位工作得很好:
SELECT products_id, sum(attributes_stock)
FROM products_attributes
GROUP BY products_id
Run Code Online (Sandbox Code Playgroud)
这会将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
Run Code Online (Sandbox Code Playgroud)
任何建议都非常感谢.
Ray*_*Ray 26
您不能group by在更新语句中使用内部.您需要使用子选择来进行分组.
像这样的东西:
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
Run Code Online (Sandbox Code Playgroud)
有些人喜欢JOIN ... ON连接操作的新式语法,而不是WHERE子句中的逗号运算符和连接谓词:
UPDATE products p
JOIN ( SELECT q.products_id
, SUM(q.attributes_stock) AS sum_attr
FROM products_attributes q
GROUP BY q.products_id
) r
ON r.products_id = p.products_id
SET p.products_quantity = r.sum_attr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20954 次 |
| 最近记录: |