天天看點

活動活動大腦的一個稍微複雜一點的sql

前段時間幫小朋友寫了一個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`

繼續閱讀