我有两个表:
m3clients
client balance
joe 0
mark 0
jeff 0
和
m3orders
client balance
joe -100
joe 50
joe -45
mark -10
mark 5
jeff 60
我需要更新 m3clients 表的余额字段,其中包含附加在其名称上的余额总和。
所以,它会读成这样:
m3clients
joe -95
mark -5
jeff 60
我应该把 GROUP BY 语句放在更新语句的什么地方?
UPDATE m3clients
INNER JOIN m3orders ON (m3orders.client = m3clients.client)
SET m3clients.balance = m3orders.balance
最佳答案
像这样尝试:
UPDATE m3clients m
INNER JOIN (
SELECT client,SUM(balance) as bal
FROM m3orders
GROUP by client) a ON m.client = a.client
SET m.balance = a.bal
这使用子查询对每个客户的余额求和,然后将其与 m3clients 表连接起来,以便能够使用计算出的余额更新它。
关于mysql - 我可以在 UPDATE 表 MySQL 事务中使用 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498845/