sql优化,如何将in换为exists
Posted yanpingping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql优化,如何将in换为exists相关的知识,希望对你有一定的参考价值。
原sql语句
-- 根据权限表查出该用户拥有的所有权限菜单 select * from tb_power where id in( select power_id from tb_role_power where role_id in( select role_id from tb_user_role where userid=1 ) )
优化后
1 -- 优化 2 select * from tb_power p where exists( 3 select power_id from tb_role_power rp where exists( 4 select 1 from tb_user_role ur where userid=1 and ur.role_id=rp.role_id 5 ) and p.id=rp.power_id 6 )
以上是关于sql优化,如何将in换为exists的主要内容,如果未能解决你的问题,请参考以下文章