请教别名的调用问题

php_aga 2014-08-12 09:54:11
请问一下,在MySQL中,SELECT 的执行顺序是在GROUP BY ,HAVENG等后面,那为何
在SELECT的时候,设定列的别名时,该别名能被GROUP BY所调用?

SELECT date AS dt,sum(over_time) FROM tTa WHERE 1<2 GROUP BY dt;

类似这样的语句可以运行,作何解释?谢谢。
...全文
103 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2014-08-13
  • 打赏
  • 举报
回复
http://miucool.cn/article-98.html
php_aga 2014-08-13
  • 打赏
  • 举报
回复
顶一下,别沉了……
php_aga 2014-08-13
  • 打赏
  • 举报
回复
引用 7 楼 trainee 的回复:
执行SQL语句,不是一个字眼一个字眼的解释执行 可以认为是编译后再执行 你的这个别名问题在第一阶段(分析语句时)就处理好,你不用担心。
感谢,终于有认真帮忙解答的兄弟出现。 倒不是担心什么,毕竟手册里是那样说的“别名可以在GROUP BY”中使用,也才注意到这点。只是看了 大多数人(书)用SQL执行顺序来分析为什么不可运行(比如HAVING可以使用分组统计后的结果,而 WHERE不可以等等),所以才产生困惑……。 MySQL用Parser和Optimizer组件来编译优化SQL语句,我也能了解,只是这样那所谓的顺序不都变得 无关紧要了……。 最后说一下提此问题纯就是因为想知道为什么样,按说应该有地方做出解释不是?谢谢。
trainee 2014-08-13
  • 打赏
  • 举报
回复
执行SQL语句,不是一个字眼一个字眼的解释执行 可以认为是编译后再执行 你的这个别名问题在第一阶段(分析语句时)就处理好,你不用担心。
php_aga 2014-08-13
  • 打赏
  • 举报
回复
引用 5 楼 zy205817 的回复:
http://miucool.cn/article-98.html
请问,这个帖子不正好说明我问题的存在么?SELECT在WHERE/GROUP BY 之后。
php_aga 2014-08-12
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
先作查询,然后再做 group by
老大,可否给个详细的出处说明?谢谢。
php_aga 2014-08-12
  • 打赏
  • 举报
回复
MySQL的执行顺序不是那样的吧? WHERE /GROUP BY/WITH/HAVING后才是SELECT 吧?!书上和我在网上所看到的都是这样介绍的吧…… 有例外情况?
ACMAIN_CHM 2014-08-12
  • 打赏
  • 举报
回复
先作查询,然后再做 group by

56,677

社区成员

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

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