代码之家  ›  专栏  ›  技术社区  ›  Seungho Lee

SQL查询中是否有特定的执行顺序?

  •  -1
  • Seungho Lee  · 技术社区  · 8 年前

    我对SQL查询的执行顺序感到困惑。

    例如( Inner join 在里面 MySQL 在下面的代码中),介于 WHERE SELECT * FROM 子句,哪一个先被解释和执行?

    也就是说,下面的查询是否带来 * tables data 先找到符合 哪里 条件?或者他们只是找到 data 哪里 选择*自 哪里

    SELECT * FROM customers, orders
    WHERE customers.id = orders.customer_id;
    

    1 回复  |  直到 8 年前
        1
  •  3
  •   rsjaffe    8 年前

    有一个 符合逻辑的 为了计算查询文本,数据库引擎可以根据最理想的顺序选择执行查询组件的顺序。下面列出了逻辑文本解析顺序。例如,这就是为什么不能使用 SELECT a中的子句 WHERE 条款。就查询解析过程而言,别名还不存在。

    1. 从

    2. 外部

    3. 哪里

    4. CUBE | ROLLUP(这些在MySQL中不存在,但在其他一些SQL方言中存在)

    5. 有

    6. 选择

    7. 独特的

    8. 限制(或,在MSSQL中,顶部)

    看到了吗 the Microsoft documentation (see "Logical Processing Order of the SELECT statement")