使用B表操作A表数据

13 篇文章 0 订阅

1,使用B表更新A表

--该sql尽量不要使用,推荐使用下面的sql
UPDATE 表A SET A.字段1 = (SELECT B.字段1 FROM B表 WHERE A.字段2 = B.字段2);

该sql会使用B表中的数据来更新A表,如果A表中存在B表中不存在的数据,那么此时这个数据会被更新为null。
避免这种情况出现,现修改sql为如下:

UPDATE 表A SET A.字段1 = (SELECT B.字段1 FROM B表 WHERE A.字段2 = B.字段2) WHERE EXISTS (SELECT 1 FROM B表 WHERE B.字段2 = A.字段2);

2,将B表的数据插入到A表中

INSERT INTO A表 (字段1,字段2,字段3,字段4,字段5) (SELECT 字段1,字段2,NULL,字段3,NULL FROM B表);

该sql会把B表中所有的数据全部插入到A表中,如果想要只插入A表中不存在的数据,可以使用下面的sql

INSERT INTO A表 (字段1,字段2,字段3,字段4,字段5) (SELECT 字段1,字段2,NULL,字段3,NULL FROM B表) WHERE NOT EXISTS (SELECT 1 FROM B表 WHERE B.字段2 = A.字段2);

上面两个sql,看情况使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值