需求背景:
2张表 SS_ZYXX 1w数据,WD_GZPZ 50w数据 SS_ZYXX.id = WD_GZPZ.zyxx_id
找到SS_ZYXX表有数据,关联表WD_GZPZ没有数据的SS_ZYXX表的id
处理方案
方案一: 联合查询:
下面sql,在mysql执行时间30分钟,太慢了,不适合处理线上问题
select id from SS_ZYXX
where id not in(Select zyxx_id from WD_GZPZ where sfsc ='N' group by zyxx_id)
方案二:使用临时表
1、2个临时表,找到需要处理数据的id
create table SS_ZYXX_ID_TEMP Select zyxx_id from WD_GZPZ where sfsc ='N' group by zyxx_id;
create table SS_ZYXX_ID_TEMP11
select id from SS_ZYXX
where id not in(Select zyxx_id from SS_ZYXX_ID_TEMP);
2个sql执行合起来1分钟内,找到了在SS_ZYXX表有数据,WD_GZPZ表没有数据的垃圾数据。