想使用union或者union all来代替嵌套子查询
晨曦遇晓 2017-09-25 08:20:31 之前写的一条sql,比较复杂 关联了7,8张表吧 所以在字段上做了嵌套子查询,但是组长说这样的效率太低,需要优化,不要使用嵌套子查询,这样会查全表失去索引,我就大概模仿下我之前的sql 全部的话有80+行 简化如下:
select
任务.销售目标,
(select sum(销售额) from 销售表 where 用户名='张三')as 销售额,
count(2)/任务.销售目标*100 as 销售比例(%),
任务.开卡目标,
(select count(id) from 开卡记录表 where 用户名=“张三”)as 开卡数量,
count(5)/任务.开卡目标*100 as 开卡比例(%)
form
(select 销售目标,开卡目标 from 任务从表 left join 任务主表 where 用户名=‘张三’)as 任务
使用的派生表,字段嵌套查询 最后就是这样的一个查询结构
结果的列数大致如下:
销售目标 销售额 销售比例(%) 开卡目标 开卡数量 开卡比例(%)
1000 100 10 20 4 20
现在需要把字段的子查询改成union或者union all来查询 该如何改造呢?