0

好的,我有一个查询需要在我的 mysql 数据库上的 php 中运行,只是想知道最好的方法......

我需要将产品选项的所有数量相加,并使用它来获得产品数量的总数。


表产品。

在产品表中,每个产品都有一个“product_id”。每个产品都包含一个“数量”列,在大多数情况下该列是不准确的。

+-----------+------------+
| ProductID |  Quantity  |
+-----------+------------+
|         1 | 3          |
|         2 | 5          |
|         3 | 1          | 
|         4 | 1          | 
|         5 | 4          |
|         6 | 8          |
|         7 | 2          |
+-----------+------------+

表 product_option_value。

在 product_option_value 表中,每个选项都使用“product_id”并包含每个选项的“数量”列。

+-------------------------+------------+---------------+
| 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 相同的所有“数量”列的总和。


我正在考虑对选项表下的所有数量求和并使用它们来更新产品表数量值,但我不确定在 mysql 中使用 php 的最佳方法是什么?

4

2 回答 2

0
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-09T08:03:32.153 回答
0

在 UPDATE 中使用 SUM 的子选择对表进行 JOIN:-

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 = SummedQty
于 2013-05-09T08:15:46.890 回答