好的,我有一个查询,我需要在我的mysql数据库上运行php,只是想知道最好的方法.
我需要把所有的产品选项的数量加在一起,然后用它来得到产品数量的总和。
表积
在产品表中,每个产品都有一个“product”。每个产品都包含一个列“数量”,这在大多数情况下是不准确的。
+-----------+------------+
| ProductID | Quantity |
+-----------+------------+
| 1 | 3 |
| 2 | 5 |
| 3 | 1 |
| 4 | 1 |
| 5 | 4 |
| 6 | 8 |
| 7 | 2 |
+-----------+------------+表product_option_value.
在product_option_value表中,每个选项使用'product_id‘,并包含每个选项的列'quantity’。
+-------------------------+------------+---------------+
| product_option_value_id | product_id | quanity |
+-------------------------+------------+---------------+
| 200 | 1 | 12 |
| 200 | 1 | 11 |
| 200 | 1 | 44 |
| 200 | 1 | 4 |
| 204 | 3 | 3 |
| 204 | 3 | 7 |
| 204 | 3 | 9 |
+-------------------------+------------+---------------+我需要用“product_option_value”表中的“product_id”列与产品的product_id相同的所有'quantity‘列之和,用正确的数量更新“product”表'quantity’列。
我正在考虑将选项表下的所有数量之和,并使用它们来更新产品表的数量值,但我不确定用mysql中的php来实现这一点的最佳方法是什么?
发布于 2013-05-09 08:03:32
UPDATE Product
SET Product.Quantity=(
SELECT SUM(product_option_value.Quantity)
FROM product_option_value
WHERE product_option_value.product_id=Product.ProductID
)发布于 2013-05-09 08:15:46
在更新中,在表上做一个连接,并为SUM做一个子选择:-
UPDATE Product a
INNER JOIN (SELECT product_id, SUM(Quantity) AS SummedQty
FROM product_option_value GROUP BY product_id) b
ON b.product_id = a.ProductID
SET a.Quantity = SummedQtyhttps://stackoverflow.com/questions/16457161
复制相似问题