替代not in 和 in 的办法

Posted deepalley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替代not in 和 in 的办法相关的知识,希望对你有一定的参考价值。

在程序中,我们经常会习惯性的使用in和not in,在访问量比较小的时候是可以的,但是一旦数据量大了,我们就推荐使用not exists或者外连接来代替了。
如果要实现一张表有而另外一张表没有的数据时,我们通常会这么写:

 

 

select * from table t where t.id not in (select id from table2)

 

我们可以使用下面的语句代替:

select a.* from table1 a left join table2 b on a.id = b.id where b.id is null; 

select a.* from table1 a left join table2 b on a.id = b.id where b.id is not null;

  

以上是关于替代not in 和 in 的办法的主要内容,如果未能解决你的问题,请参考以下文章

oracle中not in 和 in 的替代写法

Oracle,用left join 替代 exists ,not exists,in , not in,提高效率

[react] Module not found: Can't resolve 'schedule' in 'C:Usersadcaldvmtn7myapp (代码片段

detectron2报AttributeError: Attribute ‘evaluator_type‘ does not exist in the metadata of dataset(代码片段

报错“Field pet in XXX.HelloController required a bean of type ‘XXX.Pet‘ that could not be found.“(代码片段

使用 NOT IN 子句替代 Hive 查询