update stock_spec ss SET order_num=(
SELECT SUM(actual_num)
FROM sales_trade_order sto
LEFT JOIN sales_trade st ON sto.trade_id=st.trade_id
WHERE (st.trade_status=30 or st.trade_status=35) and sto.spec_id=ss.spec_id
)
上面是我写的,只是为了描述清楚问题,不能在mysql中实现更新。
就是要更新stock_spec表中order_num为sales_trade_order中所有spec_id等于ss表中spec_id的actual_num的和同时要求sales_trade表的status等于30或35
看了你的问题,但不清楚你的业务表的具体表结构,把重要的字段提取出来,作了个DEMO,不知道是不是你问题里面想要的结果(温馨提示一下:下次提问的问题还是把你的表结构和测试用例写出来吧),以下是测试表结构和数据:
以下是更新操作:
Before updated:
After updated: