mysql刷库之将查询结果作为参数批量新增

本文介绍了一种使用SQL找出两表中不匹配的user_id的方法,并展示了如何将这些特定记录插入到另一个表中。通过两种不同的查询方式来确定差异,最后将结果与固定值拼接后新增进目标表。

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

需求介绍:

         我有这样一个需求,A B两张表都有user_id字段,A表中user_id和B表的user_id相对应,但是A表中存在的user_id B表中不一定存在。现在要做的是找出A表在B表中不存在的user_id,然后再拼接上其他值作为参数新增进C表。

分析:可以看出来这里分三个步骤,首先找出A表在B表中不存在的user_id,然后拼接参数,再添加数据到C表。

第一步:找出差异的user_id

         这个比较简单,有两种实现方法

     

 1. select user_id from A where user_id not in (select user_id from B group by B.user_id )

         

 2. select A.user_id from A  left join B on A.user_id = B.user_id where B.user_id is null

第二步:拼接查询结果和固定值

       

 select user_id,"hello" as col1,"world" as col2 from A where user_id not in (select user_id from B group by B.user_id )

第三步:新增数据

       

insert into (C.id,c.user_id,col1,col2) select user_id,"hello" as col1,"world" as col2 from A where user_id not in (select user_id from B group by B.user_id )

运行sql,执行成功,大功告成,又get到一点新东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值