代码之家  ›  专栏  ›  技术社区  ›  chu8

MySQL是否按照写入的顺序执行查询?

  •  2
  • chu8  · 技术社区  · 8 年前

    MySQL是否按照写入的顺序执行查询?

    SELECT SUM(balance) AS Total,  
    COUNT(account_id) AS Number,   
    CONCAT(c.last_name, ', ', c.first_name) AS Name  
    FROM accounts AS a   
    INNER JOIN customers AS c  
    USING (customer_id)  
    GROUP BY (a.customer_id) ORDER BY Name;  
    

    怎么可能 CONCAT(c.last_name, ', ', c.first_name) 客户作为c 直到最后第三行才出现?它不会导致错误。

    2 回复  |  直到 8 年前
        1
  •  0
  •   vrijdenker    8 年前

    在sql中,代码按特定顺序计算:

    • 然后是WHERE条件
    • 然后选择子句
    • 最后是GROUP BY、HAVING子句和ORDER BY

    因此,表别名在选择时是完全已知的。

        2
  •  0
  •   vrijdenker    8 年前

    我觉得你的问题其实很好。

    这样想: 同样,在选择之前,您不能订购任何商品。

    当你在选择部分创建别名时,mysql可以在订单部分使用它。

    我希望这能为你澄清这一点。如果这能帮你解决问题,请告诉我。