Mysql+SQL server 两张表通过关联条件更新列数据

当需要做令人恶心的数据修复的任务事情时;

常常需要使用以下语句,先把原始数据表备份出来。

create table 表名_bak as (select * from 表名);

但当你的修复方案失败的时候,往往需要先把数据先还原回去。

平时使用两张表关联查询较多,更新动作较少。

以下语句个人觉得比较好用,并且逻辑清晰,增加字段也不用重写。

Mysql:

update 表名1  a  join 表名2 b  on  a.xx=b.xx  set a.xx1=b.xx1,a.xx2=b.xx2;

Sql server:

update 表名1 
    set 表名1.xx=表名2.xx 
from 表名1 left join 表名2 
    on 表名1.关联字段1=表名2.关联字段2;

 Oracle:

update 表名1 
    set 表名1.xx=(select 表名2.xx from 表名2 where 表名1.关联字段1=表名2.关联字段2)
where exists (select 1 from 表名2 where 表名1.关联字段1=表名2.关联字段2);

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天亦可蓝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值