首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL联接查询的执行顺序是什么?

问SQL联接查询的执行顺序是什么?
EN

Stack Overflow用户
提问于 2019-08-04 14:50:12
回答 1查看 742关注 0票数 2

当我们有多个连接查询、派生表连接查询和最后在哪里的条件下,SQL连接查询的执行顺序是什么?

在SQL中,哪个代码块将首先执行(或),无论是最外层的代码块还是内部最内部的代码块?

代码语言:javascript
复制
select 
  TablePerson.PersonName, TablePet.PetName, TablePet.PetType
from 
  TablePerson
left outer join 
(
  select TablePet.ownerID, TablePet.PetName, TableTypes.PetType
  from TablePet 
  inner join TableTypes on TablePet.PetTypeID = TableTypes.TypeID
) 
  TablePet
on
  TablePet.OwnerID = TablePerson.PersonID
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-04 16:23:03

SQL是一种声明性语言,而不是一种过程语言。SQL查询表示结果集,而不是生成结果集的特定操作。

SQL在处理查询时基本上有三个步骤:

  • 解析查询
  • 优化查询以生成数据的最佳执行计划
  • 执行查询

根据数据和环境,完全相同的查询可以在不同的时间有不同的执行计划。

这是非常重要的理解。不能指定执行计划是什么。优化器确定--不考虑CTE和子查询。您可以通过在查询中提供提示来影响执行计划。

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

https://stackoverflow.com/questions/57347568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档