创建一张表(比如说帖子回复表,简单的几个字段)
插入数据
(null,8,2,'第二篇帖子的回复内容',1459908612,1459908612);
这样排序自然没什么问题
而
这样排序的话,结果却是这样
个人理解:
这个max(inputtime)虽然和表上的数据是一样的,但它并不代表某个tid的inputtime,order by inputtime 实际是对表中的inputtime排序,所以这里看不到效果,但感觉这个理由有点牵强,请赐教,在这里谢谢诸位了
可以像你说的那样理解。
SQL 执行顺序:from --> where --> group by --> having --> select --> order by
当你执行了 group by 和 select 之后,你的关系结果中并不包含 inputtime ,所以后面的 order by inputtime 变得没有意义。
实际上,几乎所有的关系代数运算符都是函数,即对于任何输入,都会产生确定的输出。但 order by 不是,order by 对于同一输入可以产生多种不同的输出。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。