想使用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来查询 该如何改造呢?

...全文
662 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2017-09-29
  • 打赏
  • 举报
回复
确实没什么可以优化的
zjcxc 2017-09-26
  • 打赏
  • 举报
回复
mysql 的子查询是比较差,但也不是所有情况都差,所以通常效率如果没有问题,就没必要改造 你这个例子,3个子查询都是查的不同表,从例子上看,3个子查询数据也没有任何关联,个人感觉是没有什么需要调整的

56,681

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧