首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要在mysql中使用sum还是使用PHP的其他方法?

问我需要在mysql中使用sum还是使用PHP的其他方法?
EN

Stack Overflow用户
提问于 2013-05-09 08:00:38
回答 2查看 95关注 0票数 0

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

我需要把所有的产品选项的数量加在一起,然后用它来得到产品数量的总和。

表积

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

代码语言:javascript
复制
+-----------+------------+
| 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’。

代码语言:javascript
复制
+-------------------------+------------+---------------+
| 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来实现这一点的最佳方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-09 08:03:32

代码语言:javascript
复制
UPDATE Product
SET Product.Quantity=(
SELECT SUM(product_option_value.Quantity)
FROM product_option_value
WHERE product_option_value.product_id=Product.ProductID
)
票数 0
EN

Stack Overflow用户

发布于 2013-05-09 08:15:46

在更新中,在表上做一个连接,并为SUM做一个子选择:-

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16457161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档