更新一个表的字段值等于另一个表的字段值

在进行数据库操作时,有时我们需要把两个关联表中的某个字段同步,即把表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。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值