MySQL UPDATE com SELECT SUM da tabela diferente
Eu tenho duas mesas:ITEMS
com quantidades e unit_price (id | nome | order_id | qt | unit_price) e tabelaORDERS
.
eu queroUPDATE
mesaorders
e coloque emorders.total_price sum of multiplications qt*unit_price
para os mesmos pedidos para obter o preço total do pedido.
oSELECT
consulta na tabela de itens é bastante simples e funciona bem dando somas para todos os itens dentro do mesmo order_id:
SELECT SUM(items.qt*items.unit_price) from items GROUP by items.order_id
mas não consigo inserir este valor no meuORDERS
mesa. Eu não consegui fazer isso funcionar:
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
ele retorna"Subquery returns more than 1 row"
Eu encontrei uma pergunta muito semelhanteAqui mas a resposta não funcionou para mim também:
UPDATE orders SET orders.t_price = (SELECT SUM(items.qt*items.unit_price) from items WHERE orders.id = items.order_id)