update 多表联合查询更新 right join+子查询+group分组

    技术2022-05-20  54

    table: t_a id: 12 p_id:1 data: 10 id:12 p_id:1data:2id:3p_id:3data:32table :t_bid:2p_id:1data:45id:4p_id:67data:56我是想用一条update 更改t_b 里和t_a p_id 相同的data  我是这样写的update t_a as a left join t_b as b on a.p_id=b.p_id set b.data=b.data-a.data  但是这样运行时,只在t_b 里减了一次,不知道为什么呢?

    =======================================

    正确的sql代码是:

     

    update t_b as b right join (select sum(data) as c,p_id from t_a group by p_id) as a on b.p_id=a.p_id set b.data=b.data-a.c

     


    最新回复(0)