首先这两个表有关联。
update表1 set 表1 修改列=表2 赋值字段;
from表2 where表1 关联字段=表2 关联字段。
我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。
在数据库中存放在表行列交叉处的数据叫做“值”,它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。
update 表1 set 表1.修改列=表2.赋值字段
from 表2 where 表1.关联字段=表2.关联字段
update a
set a.ty2=b.ty1
from t2 a,t1 b
where a.n2=b.n1
更新t2表的ty2字段的值为t1表的ty1字段的值,条件是a表的n2=b表的n1
写法轻松,更新效率高:
update table1
set field1=table2.field1,
field2=table2.field2
from table2
where table1.id=table2.id
常规方式,种写法相当于一个 Left join, 以外面的where为更新条数,如果不加where就是所有记录
update table1
set field1=(select top 1 field1 from table2 where table2.id=table1.id)
where table1.id in (condition)