MySQL-UPDATE mit SELECT SUM aus verschiedenen Tabelle

Ich habe zwei Tabellen:
ITEMS mit Mengen und unit_price (id | name | order_id | qt | unit_price)
und Tabelle ORDERS.

Möchte ich UPDATE Tabelle orders und in orders.total_price sum of multiplications qt*unit_price für die gleichen Aufträge zu bekommen Gesamtpreis der Bestellung.

Den SELECT Abfrage auf die Tabelle Artikel ist ganz einfach und funktioniert einwandfrei Angabe von Summen für alle Elemente innerhalb der gleichen order_id:

SELECT SUM(items.qt*items.unit_price) from items GROUP by items.order_id

aber ich kann nicht legen Sie diesen Wert in meine ORDERS Tabelle. Ich konnte nicht diese Arbeit machen:

UPDATE orders, items SET orders.total_price = (SELECT SUM(items.qt*items.unit_price)
FROM items GROUP BY items.order_id) WHERE orders.id = items.order_id

gibt es "Subquery returns more than 1 row"

Fand ich eine sehr ähnliche Frage hier aber die Antwort hat nicht funktioniert für mich auch:

UPDATE orders SET orders.t_price = (SELECT SUM(items.qt*items.unit_price) from items WHERE orders.id = items.order_id)
  • bitte zeigen Sie Ihre vollständige Abfrage, was Sie tun, wie mysql_query("query")
  • Ich mache es jetzt in phpmyadmin also die zweite Abfrage oben ist die tatsächliche Abfrage, die ich versuchen: "UPDATE-Aufträge, items, Aufträge.total_price = (SELECT SUM(Artikel.qt*Gegenstände.unit_price) FROM Artikel GROUP BY-Elementen.order_id), WO Aufträge.id = Elemente.order_id"
InformationsquelleAutor Milosz | 2012-09-23
Schreibe einen Kommentar