美文网首页
求差集,在A表不在B表中的数据(两个表的差集),除了not in

求差集,在A表不在B表中的数据(两个表的差集),除了not in

作者: 燃灯道童 | 来源:发表于2019-11-21 15:50 被阅读0次
from写错了,请忽略

经常遇到这种情况,平常写法也是如图,想思考下还有没有其他的写法?经过思考和集思广益后,有以下几种方法。

背景:

select count(0) from tps_uw_detail;##共61394条数据  A表

select  count(0) from  ld_intercept_file;##共19686条数据 B表

方法1:

SELECT a.app_no

FROM tps_uw_detail a

WHERE NOT EXISTS ( SELECT b.insur_no FROM ld_intercept_file b WHERE b.insur_no = a.app_no );

###耗时283.034s 查询出的保单数据51629

方法2:

SELECT a.app_no

FROM tps_uw_detail a

LEFT JOIN ld_intercept_file b ON b.insur_no = a.app_no

WHERE b.insur_no IS NULL;

###耗时122.584s 查询出的保单数据51629

SELECT a.app_no

FROM tps_uw_detail a

LEFT JOIN ld_intercept_file b ON b.insur_no = a.app_no

WHERE ( b.insur_no IS NULL OR b.insur_no = '' );

##耗时168.719s 查询出的保单数据51629

大致看了一下,还是用关联的速率会快一点。

相关文章

网友评论

      本文标题:求差集,在A表不在B表中的数据(两个表的差集),除了not in

      本文链接:https://www.haomeiwen.com/subject/bvjtwctx.html