在进行数据库操作时,有时我们需要把两个关联表中的某个字段同步,即把表1中字段A的值赋值到表2的字段B中,表1和表2通过字段C关联。SQL语句如下所示(Sql sever 和MySql的写法稍有不同):
SQL Sever:
写法1: update t2 set t2.B=t1.A from Table2 t2 ,Table t1 where t2.C2=t1.C1
写法2: UPDATE Table2 SET B= (SELECT A FROM Table1 WHERE C1=Table2.C2)
注意:使用写法2时两个表中字段C的数据最好能完全匹配上,否则在Table2中存在的记录但Table1中不存在时,会导致Table2的字段B重新赋值为空。而使用写法1则会保留Table中字段的原值。请根据具体情况选择合适的Sql执行。具体使用可参见如下:
原值:
执行写法1之后:
执行写法2之后:
MySQL:
update Table2 inner join Table1 on Table2.C2=Table1.C1 set Table2.B=Table1.A
注意:该写法只会更新两表中C字段相同的记录,不会影响其他记录。同Sql server 写法1。