mysql 多表 查询 之后 group by 分组 order by 无法按照日期排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 多表 查询 之后 group by 分组 order by 无法按照日期排序相关的知识,希望对你有一定的参考价值。
SELECT Z.* from (A.title,A.sortrank,A.pubdate FROM `acms_archives` as A left join `acms_arctype` as B ON A.typeid = B.id where B.topid=18 and A.arcrank=0 and A.sortrank = A.pubdate and A.pubdate > 0 group by A.mid )Z order by A.pubdate desc limit 0,7 结果总是 正序 怎么让他按时间倒序排列
刚才发错sql了 在发一次。
SELECT A.title,A.sortrank,A.pubdate FROM `acms_archives` as A left join `acms_arctype` as B ON A.typeid = B.id where B.topid=18 and A.arcrank=0 and A.sortrank = A.pubdate and A.pubdate > 0 group by A.mid order by A.pubdate desc limit 0,7
,在select后面除了聚合函数必须只有group by后面的字段,而你的... 参考技术B 把desc去掉 参考技术C 你这个Sql语句本身都有问题,按分组的话,你显示的字段都要放在分组里;
sql语句正确后,按时间降序排列是正确的本回答被提问者采纳
MySQL调优--05---多表查询优化子查询优化 ORDER BY优化GROUP BY优化分页查询优化
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
多表查询优化
驱动表结论
1.外连接
左外连接: 一般来说:左表为驱动表,右边为被驱动表
2.内连接
对于内连接来讲,如果表的连接条件中只能有一个字段有索引,则有索引的字段所在的表会被作为被驱动表出现。
对于内连接来说,在两个表的连接条件都存在索引的情况下,会选择小表作为驱动表。“小表驱动大表”
join语句原理
多表联查–06— join语句原理
子查询优化
子查询执行效率不高的原因
优化
在MYsql 中,可以使用(JOIN )查询代替子查询,性能会更好
ORDER BY优化
排序优化
案例
1. 创建索引
- CREATE INDEX idx_age_classid_name ON student (age,classid,NAME);
2. 不限制,索引失效
- EXPLAIN SELECT SQL_NO_CACHE * FROM student ORDER BY age,classid;
优化器优化策略:查询所有记录,如果走所以索引排序,还需要全部记录回表操作,所以不如全表扫描,加入内存再进行排序快.
3.增加limit过滤条件,----使用上索引了
- EXPLAIN SELECT SQL_NO_CACHE * FROM student ORDER BY age,classid LIMIT 10;
4.不用回表覆盖索引,----使用上索引了
- EXPLAIN SELECT SQL_NO_CACHE age,classid,name,id FROM student ORDER BY age,classid;
小结
filesort算法:双路排序和单路排序
GROUP BY优化
分页查询优化
以上是关于mysql 多表 查询 之后 group by 分组 order by 无法按照日期排序的主要内容,如果未能解决你的问题,请参考以下文章
加速使用 Group By 和 Order By 的多表 Mysql 查询
解析mysql中:单表distinct多表group by查询去除重复记录
EF Linq to Sql 多表left join查询并对结果group by分组之后进行count,max等处理