mysql 从一个表中查询若干条数据重新插入到一个新表 已经存在的不再重复插入

时间:2022-04-17 23:30:04

insert into business_dest  (select a.* from (select product,business,business VALUE from business_source where  date_sub(curdate(), INTERVAL 1 DAY) >= status_date group by product,business) a  where not EXISTS(select 1 from business_dest b where a.product=b.product and a.business=b.business));

亲自查询有效,这里目标表是business_dest  ,需要从business_source 中过滤一些数据,并插入到目标表,注意,这里面用的value是再查询里面而不是一般的 insert into table values **** 而且这里的别名 a 是值查询出来的结果,用来和后面的表做比较。

这条语句实现的功能就是从原表中找数据,重新插入到目标表,而且去掉重复的(在目标表中已有的就不再插入)