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

需求介绍:

         我有这样一个需求,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到一点新东西。

猜你喜欢

转载自blog.csdn.net/qq_29410905/article/details/81783483