换种方法,提高left join查询的效率

表之间使用联结查询时,以left join为例,当联结的表较多,并且符合条件的记录个数也很多时,查询的效率变得十分低下,不过改变一下方法,却可以避免这个问题。
  例如:要对系统中各个公司的业务进行统计,公司的业务有很多:业务1、业务2、业务3......业务10,就假设有10项业务,初始的想法是将公司表与这10张业务表进行left join,按公司分组,然后使用count(distince 业务表主键),来统计每个公司的各个业务量。但这种方法执行效率太低,换一种做法:先将公司表分别与10张业务表left join,按公司分组,这样得到10个查询结果,然后将公司表与这10个查询结果进行left join,这样也可以得到想要的结果。
  感觉最大的区别就是公司表与那10个查询结果之间的对应关系是1对1,而公司表与10个业务表之间的对应关系是1对多,也许就是这个原因,导致了效率的天壤之别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值