所以我有CUSTOMER表和ORRDER表。CUSTOMERS表有一個名為noOfPurchases的屬性。并且ORRDER表有一個名為quantity的屬性。
如何更新 CUSTOMERS 表,每個客戶都會有他們所有訂單數量的總和,例如,有一次訂單有 5 件商品,另一條記錄具有相同的 customerID 和 12 件商品。所以這意味著CUSTOMERS表中的noOfPurchases應該是 17。并且所有客戶資料都應該更新,這不是我應該一一輸入 customerID。那么我該怎么做呢?
訂單表

顧客

uj5u.com熱心網友回復:
這是一個簡單的多表更新,如手冊頁https://dev.mysql.com/doc/refman/8.0/en/update.html中所述
update customer
join (select customerid, sum(quantity) qty from `orrder` group by customerid) csum
on customer.customerid = csum.customerid
set nofpurchases = csum.qty;
您可以手動或定期使用https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html運行它
或者,如果您希望更新插入訂單,請使用觸發器https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
delimiter $$
create trigger t after insert on `orrder`
for each row
begin
update customer
set nofpurchases = nofpurchases new.quantity
where customer.customerid = new.customerid;
end $$
delimiter ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/461717.html
標籤:mysql sql 数据库 mysql-工作台 工作台
