2016-04-06 7 views
0

Kann jemand sehen, was ist falsch mit der folgenden Abfrage? Der Wert ich habe, ist die products_model Nummer 000011195001mysql Update-Abfrage mit 2 Unterabfragen

Was ich brauche, ist die Summe attributes_stock alle entsprechenden products_id in Tabelle products_attribute

Die Summe aller attributes_stock von products_id 1726 in Tabelle products_attribute 500 ist Diese 500 brauche ich in der Tabelle Produkte in Feld products_quantity

Wenn ich es laufen erhalte ich:

UPDATE products As C INNER JOIN (
SELECT SUM(attributes_stock) AS products_quantiry 
FROM products_attributes 
WHERE products_id IN(
    SELECT products.products_id 
    FROM products 
    WHERE products_model LIKE '000011195001' 
    ) 
) 
AS A ON products.products_id = products_attributes.products_id 
SET C.products_quantity = A.products_quantiry 

Tabelle Produkte products_model, products_id, products_quantity

Werte

000011195001, 1726

Tabelle products_attribute products_id, attributes_stock

1726, 300

1726, 150

1726, 50

Vielen Dank im Voraus

Antwort

0

hier (ich habe eine SQL-Geige gemacht, aber die Website ist nicht gerade arbeitet: '():

UPDATE products 
INNER JOIN 
(SELECT products_id, SUM(attributes_stock) as qty 
FROM products_attribute 
GROUP BY products_id) T ON T.products_id = products.products_id 
SET products.products_quantity = T.qty 
WHERE products_model = '000011195001' 

;

+0

Großartig, das funktioniert für mich! – pekabo

Verwandte Themen