社区首页 >问答首页 >SQL查询中是否有特定的执行顺序?

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

Stack Overflow用户
提问于 2018-11-04 09:42:20
回答 1查看 312关注 0票数 0

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

例如,(下面代码中的Inner joinMySQL中),WHERE子句和SELECT * FROM子句之间,哪一个首先得到解释和执行?

也就是说,下面的查询是否首先带来了*(all)的tables data,然后找到符合WHERE条件的情况?或者他们只是找到与WHERE条件匹配的WHERE列表,然后从WHERE结果中找到SELECT * FROM

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM customers, orders
WHERE customers.id = orders.customer_id;

如前所述,我想知道SQL查询一般是如何执行的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-04 09:46:44

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

  1. 从…
  2. 在……上面
  3. 外部
  4. 哪里
  5. 按组
  6. 多维数据集\汇总(这些数据集不存在于MySQL中,而是出现在其他一些SQL方言中)
  7. 选择
  8. 分异
  9. 命令由
  10. 限制(或者,在MSSQL中,上限)

有关此问题的更多信息,请参见Microsoft文档(请参阅“SELECT语句的逻辑处理顺序”)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53143613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文