update 多表聯合查詢更新 right join+子查詢+group分組

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章