我对sql查询的执行顺序感到困惑。
例如( Inner join
在 MySQL
在下面的代码中),介于 WHERE
条款和 SELECT * FROM
子句,哪一个先被解释和执行?
也就是说,下面的查询是否带来 *
(全部) tables data
先找到符合 WHERE
条件?或者他们只是找到 data
与…匹配 WHERE
条件,然后 SELECT * FROM
从 WHERE
结果如何?
SELECT * FROM customers, orders
WHERE customers.id = orders.customer_id;
与上面的例子一样,我想知道sql查询通常是如何执行的。
1条答案
按热度按时间slsn1g291#
对查询文本的求值有一个逻辑顺序,但是数据库引擎可以根据最理想的顺序选择执行查询组件的顺序。下面列出了逻辑文本解析顺序。例如,这就是为什么不能使用
SELECT
a中的子句WHERE
条款。就查询解析过程而言,别名还不存在。从
在
外面的
哪里
分组依据
cube | rollup(这些在mysql中不存在,但在其他一些sql方言中存在)
有
选择
不同的
订货人
限制(或,在mssql中,顶部)
有关此操作的详细信息,请参阅microsoft文档(请参阅“select语句的逻辑处理顺序”)。