Mam dwie tabele: ITEMS
z ilości i unit_price (ID | Nazwa | order_id | qt | unit_price) i stół ORDERS
.MySQL UPDATE z SELECT SUM z innej tabeli
Chcę, aby UPDATE
stół orders
i miejsce w orders.total_price sum of multiplications qt*unit_price
dla tych samych zamówień, aby uzyskać całkowitą cenę zamówienia.
SELECT
zapytanie na tabeli elementów jest dość prosty i działa drobne sumy charytatywne dla wszystkich elementów w tym samym ORDER_ID:
SELECT SUM(items.qt*items.unit_price) from items GROUP by items.order_id
ale nie mogę wstawić tę wartość w moim ORDERS
tabeli. Nie mogłam dokonać tej pracy:
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
powraca "Subquery returns more than 1 row"
znalazłem bardzo podobne pytanie here ale odpowiedź nie działa dla mnie, a także:
UPDATE orders SET orders.t_price = (SELECT SUM(items.qt*items.unit_price) from items WHERE orders.id = items.order_id)
proszę pokazać swoje pełne zapytanie co robisz jak mysql_query ("zapytanie") –
Robię to na razie w phpmyadmin, więc drugie zapytanie powyżej to rzeczywiste zapytanie, które próbuję: "ZAKTUALIZUJ zamówienia, elementy SET orders.total_price = (SELECT SUM (items.qt * items.unit_price) Z pozycji GROUP BY items.order_id) WHERE orders.id = items.order_id " – Milosz