table: t_a
id: 12
p_id:1
data: 10
id:12
p_id:1
data:2
id:3
p_id:3
data:32
table :t_b
id:2
p_id:1
data:45
id:4
p_id:67
data: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