UPDATE tf_c_agency_credit a
INNER JOIN (
SELECT a.agency_id AS agency_id, SUM(CASE
WHEN a.plase_state = 1 THEN IFNULL(a.valuation_fee, 0)
END) AS entrance_fee
, SUM(IFNULL(a.valuation_fee, 0)) AS all_fee
FROM tf_c_trade a
WHERE a.state = 111
GROUP BY a.agency_id
) c
ON a.agency_id = c.agency_id
SET a.entrance_fee = c.entrance_fee, a.all_fee = c.all_fee;
先贴sql吧,需求是写个定时器,十分钟更新一下tf_c_agency_credit 表中 两个字段,字段的数据来自 tf_c_trade 表中 的 valuation_fee 字段和 根据agency_id分组,两个字段都是求和得到的,一个是不分状态,一个是限制状态plase_state =1 ,没啥技术点,简单记录下。主要是mysql update 和select 一起使用的时候得用 inner join 结合使用,lz在写sql的时候数据原因只有一条数据需要更新,看结果只一条受影响然后以为sql有问题,好好反思了好一会儿。写个东西纪念下。这该死的码农