前段時間幫小朋友寫了一個SQL, 好久沒寫了, 記在這裡, 就算是自己思維的一個Cache吧。
需要是這樣的: 表a[帳号,餘額], 表b[帳号,餘額], a,b中的帳号一樣,餘額不一樣,我想把a中和b中一樣帳号的帳号的餘額,改成和b中一樣。 這裡沒要資料量級上的限制, 下面的sql實作就沒考慮性能方面的事。
我用的是Mysql, 建表語句和初始化資料見附件1。
先用一個View過渡了下, 再合并成如下的sql:
update a inner join (select b.* from a , b where a.account = b.account and a.balance != b.balance) as b1
on a.`account` = b1.`account`
set a.`balance` = b1.`balance`
where a.`account` = b1.`account`