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

efzxgjgh  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(262)

我对sql查询的执行顺序感到困惑。
例如( Inner joinMySQL 在下面的代码中),介于 WHERE 条款和 SELECT * FROM 子句,哪一个先被解释和执行?
也就是说,下面的查询是否带来 * (全部) tables data 先找到符合 WHERE 条件?或者他们只是找到 data 与…匹配 WHERE 条件,然后 SELECT * FROMWHERE 结果如何?

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

与上面的例子一样,我想知道sql查询通常是如何执行的。

slsn1g29

slsn1g291#

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


外面的
哪里
分组依据
cube | rollup(这些在mysql中不存在,但在其他一些sql方言中存在)

选择
不同的
订货人
限制(或,在mssql中,顶部)
有关此操作的详细信息,请参阅microsoft文档(请参阅“select语句的逻辑处理顺序”)。

相关问题