我有两个MySQL表:
> Sale
--------------------------------------------------------
ID customer model qty
--------------------------------------------------------
1 Ali H46 1
1 aslam H46 1
1 kasif H46 1
1 umer H46 1
1 naveed H46 1
---------------------------------------------------------
> Stock
---------------------------------------------------------
ID model qty
---------------------------------------------------------
1 H46 40
1 H47 30
1 H48 20
1 H49 60
1 H50 20
---------------------------------------------------------
我应用的MySQL查询
UPDATE sale AS T1
INNER JOIN stock T2
ON T1.model = T2.model
SET T2.qty = (T2.qty - T1.qty)
在库存表中,只有一次数量更新不会减去库存表中的总销售数量。
我要从库存中减去所有出售的数量。但是我的查询结果返回了库存的1条记录更新。
答案 0 :(得分:0)
我认为您需要加入Sale
表的汇总:
UPDATE stock st
INNER JOIN
(
SELECT model, SUM(qty) AS qty
FROM sale
GROUP BY model
) s
ON st.model = s.model
SET
st.qty = st.qty - s.qty;
内部联接更新(而不是左联接更新)在这里应该没问题,因为销售量为零的模型始终不需要更新库存。