SQL脚本实现两张关联数据表之间批量更新UPDATE

本文介绍了一种使用SQL语句从一张表中批量更新另一张表字段的方法。具体来说,通过两个表之间的关联字段,可以将一个表的数据更新到另一个表对应的字段上。此方法适用于需要同步两张表中特定字段值的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景:

两张数据表之间存在关联关系,使用一张表的字段去批量更新另外一张表中某列字段。

以下示例中,t1表与t2表通过f1字段关联,需要使用t1表的f2字段批量更新t2表中的f2字段。

--创建数据表t1,含3个字段:f1,f2,f3
create table t1 (f1 varchar(10), f2 varchar(10), f3 varchar(10));
select * from t1;

--为数据表t1初始化3条数据
insert into t1 (f1, f2, f3) values ('101', '201', '301');
insert into t1 (f1, f2, f3) values ('102', '202', '302');
insert into t1 (f1, f2, f3) values ('103', '203', '303');

--创建数据表t2,含3个字段:f1,f2,f4
create table t2 (f1 varchar(10), f2 varchar(10), f4 varchar(10));
--drop table t2;
select * from t2;

--为数据表t2初始化3条数据
insert into t2 (f1, f2, f4) values ('101', '', '401');
insert into t2 (f1, f2, f4) values ('102', '', '402');
insert into t2 (f1, f2, f4) values ('103', '', '403');

--更新t2的f2字段值为空
update t2 set f2 = '';
select * from t2;

--使用t1表的f2字段更新t2表的f2字段
--t1表与t2表通过f1字段进行关联
update t2 set t2.f2 = (
select t1.f2 from t1 where t1.f1 = t2.f1
) 
where (t2.f2 is null or t2.f2 = '') --条件,t2表的f2字段为空
and exists (
select 1 from t1 where t1.f1 = t2.f1); --注意加上该条件,确保脚本内部循环的准确性


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值