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