2013-05-09 22 views
0

好吧,我有一個查詢,我需要在PHP在我的MySQL數據庫運行只是想做到這一點的最好辦法...我是否需要在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',每個選項都包含一個'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 。


我想使選項表下的所有數量的總和,並用它們來更新產品表數量值,但我不知道要做到這一點使用PHP MySQL中的最佳方式是什麼?

+1

通常,當你正在做的是數據操作(沒有邏輯)盡最大努力去做的D B。如果你需要做驗證或其他形式的複雜邏輯,然後使用PHP。在這種情況下,我會使用SQL只有 – cernunnos 2013-05-09 08:23:01

+0

Thankyou的建議cernunnos,我用一個MySQL查詢沒有任何額外的PHP,它的工作很好,總和。 – matthew 2013-05-09 09:09:40

回答

0
UPDATE Product 
SET Product.Quantity=(
SELECT SUM(product_option_value.Quantity) 
FROM product_option_value 
WHERE product_option_value.product_id=Product.ProductID 
) 
+0

三江源手帕,我覺得這一定是直線前進,但我從來沒有遇到一個和查詢,我不知道它是否適合這個... – matthew 2013-05-09 08:11:48

+0

所以我不得不添加下劃線和改變一些大寫的信件然後它的工作!真的很感謝幫助:-)我正在一點一點的學習...... – matthew 2013-05-09 09:07:42

+0

Hanky在某些情況下只是一件事產品沒有任何選項我不想要產品數量更新,有沒有辦法讓一個條件MySQL的查詢或將它在PHP中的條件? – matthew 2013-05-09 09:29:25

0

之內的更新都帶有爲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 = SummedQty 
相關問題