用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1337|回复: 5
收起左侧

麻烦大神帮看看 这种SQL语句怎么优化啊?

[复制链接]
发表于 2014-2-12 17:24:59 | 显示全部楼层 |阅读模式
本帖最后由 hulinying 于 2014-2-12 17:27 编辑

SELECT * ,

(SELECT COUNT(*) FROM t_articles WHERE e_id = e.e_id )  as articles_count,  

(SELECT COUNT(*) FROM t_abs WHERE e_id = e.e_id )  as abs_count

FROM  `t_eas`  as e WHERE is_del = 0

这种语句  如何优化啊
执行效率太差了


发表于 2014-2-12 20:21:13 | 显示全部楼层
写错了,更正下

分而治之
SELECT COUNT(*) FROM t_articles join t_eas as e  on e_id = e.e_id;查询这个表的记录数
SELECT COUNT(*) FROM t_abs join t_eas as e  on e_id = e.e_id;再查询这个表的记录数
SELECT *,第一个记录数,第二个记录数 FROM  `t_eas`  as e WHERE is_del = 0;
发表于 2014-2-12 20:21:45 | 显示全部楼层
不要追求一个语句就解决所有的问题,分而治之
 楼主| 发表于 2014-2-13 16:51:26 | 显示全部楼层
哥, SELECT *,第一个记录数,第二个记录数 FROM  `t_eas`  as e WHERE is_del = 0;
这样查出来 第一个记录数和第二个记录数那不全都一样了吗?

我之所以那么查 是因为不同eas 对应的articles  和 abs   count不一样啊
 楼主| 发表于 2014-2-13 16:52:12 | 显示全部楼层
fengshuang_110 发表于 2014-2-12 20:21
写错了,更正下

分而治之

哥, SELECT *,第一个记录数,第二个记录数 FROM  `t_eas`  as e WHERE is_del = 0;
这样查出来 第一个记录数和第二个记录数那不全都一样了吗?

我之所以那么查 是因为不同eas 对应的articles  和 abs   count不一样啊
发表于 2014-2-14 17:11:17 | 显示全部楼层
分而治之,同意三楼的

本版积分规则