update本质论

来源:互联网 发布:淘宝怎么查看购物等级 编辑:程序博客网 时间:2024/05/16 13:58

表A

UserID UserName 1 a 2 b 3 c 4 d  表B

UserID UserName UserPassWord 1   111 2   111

把表A中的UserName更新到表B中,执行以下SQL

UPDATE B
SET UserName=A.UserName
FROM A 
INNER JOIN A
ON A.UserID=B.UserID

该语句用直观理解比较难懂。如果拆分以下两步,则思路就清晰了。

第一步,筛选合并表

以被更新的表B为主,根据查询条件生成新表C

查询条件:A.UserID=B.UserID

表C

UserID B.UserName B.UserName A.UserPassWord 1   a 111 2   b 111

第二步,根据表C和set表达式,循环更新字段

相当于

for(i=0,C.Rows.Count,i++)
{
   C.Rows[i][B.UserName]
=C.Rows[i][A.UserName];
}

任何Update语句都可以拆分成这两个步骤。

原创粉丝点击