[英]MYSQL- How to sum values from one table into one field in another table?
大家,我正在建立一個血庫捐贈系統數據庫。 所以我做了一張桌子
donation
(
id donation int,
blood_type varchar(45),
blood_amount float
)
第二個表blood_supply(blood_type varchar(45),amount_by_type float)
我的桌子看起來像這樣
我想按血型存儲所有捐贈的全部血液。
因此,現在我嘗試根據blood_type對捐贈表中的值求和,並使用以下命令將它們存儲到blood_supply表中:
update donation,blood_supply
set amount_by_type = (amount_by_type + blood_amount)
where donation.blood_type = blood_supply.blood_type;
但是它沒有正確計算出blood_amount。
我懂了
要求在blood_supply表中獲得A = 0.8,B = 0.4、0 = 0.9
您可能需要先聚集左表,然后再加入並更新右表。
update (select sum(blood_amount) blood_amount,
blood_type
from donation
group by blood_type) dt,
blood_supply bs
set bs.amount_by_type = dt.blood_amount
where bs.blood_type = dt.blood_type
希望能有所幫助
您要找的是一個視圖。 每次在另一個表中修改數據時,更新一個表都是不現實的。
我的答案是:
create view blood_supply as select sum(blood_amount) as blood_amount, blood_type
from donation group by blood_type
此后,可以像對待其他任何表一樣處理blook_supply,但它將隨着捐贈的更改而更新值。 更改表示新捐款,現有捐款的更新或刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.