sql 把一张表的某个字段按查询条件写入另一张表

经常出现要求说要把A表中的某个字段内得数据根据查询条件与B表进行一个替换或者添加,这个时候我普遍用update语句和EXISTS进行一个修改
用户 A表

Id 字典编码 状态
0001 0
0002 4402 1
0003 0

dd
地址 B表

主键Id code name userId
1 4400 北京 0001
2 4401 上海 0002
3 4401 上海 0003

现在需要把a表中状态为0 且字典编码为空的数据全部替换为B表里面的code

update A set 字典编码 = (select code from B where userId = id)
where EXISTS(select 1 from B  where  userId = id and 状态 =0 and 字典编码 is null)

第一次查询B表是为了把B表的数据和A表进行一个匹配,EXISTS后面的查询是为了把需要进行修改的数据筛查出来,这样就可以精确的把需要修改的数据改查询出来。

猜你喜欢

转载自blog.csdn.net/zhongzih/article/details/105291732
今日推荐