前段时间帮小朋友写了一个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`
本文介绍了一种使用SQL更新两个表中相同帐号余额的方法。通过创建视图并使用内连接,将表A中与表B中相同帐号但余额不同的记录进行更新。
1万+

被折叠的 条评论
为什么被折叠?



