先作查询,然后再做 group by

解决方案 »

  1.   

    MySQL的执行顺序不是那样的吧?
    WHERE /GROUP BY/WITH/HAVING后才是SELECT 吧?!书上和我在网上所看到的都是这样介绍的吧……
    有例外情况?
      

  2.   

    请问,这个帖子不正好说明我问题的存在么?SELECT在WHERE/GROUP BY 之后。
      

  3.   

    执行SQL语句,不是一个字眼一个字眼的解释执行 
    可以认为是编译后再执行
    你的这个别名问题在第一阶段(分析语句时)就处理好,你不用担心。
      

  4.   

    感谢,终于有认真帮忙解答的兄弟出现。
    倒不是担心什么,毕竟手册里是那样说的“别名可以在GROUP BY”中使用,也才注意到这点。只是看了
    大多数人(书)用SQL执行顺序来分析为什么不可运行(比如HAVING可以使用分组统计后的结果,而
    WHERE不可以等等),所以才产生困惑……。
    MySQL用Parser和Optimizer组件来编译优化SQL语句,我也能了解,只是这样那所谓的顺序不都变得
    无关紧要了……。
    最后说一下提此问题纯就是因为想知道为什么样,按说应该有地方做出解释不是?谢谢。