当我们有多个连接查询、派生表连接查询和最后在哪里的条件下,SQL连接查询的执行顺序是什么?
在SQL中,哪个代码块将首先执行(或),无论是最外层的代码块还是内部最内部的代码块?
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发布于 2019-08-04 16:23:03
SQL是一种声明性语言,而不是一种过程语言。SQL查询表示结果集,而不是生成结果集的特定操作。
SQL在处理查询时基本上有三个步骤:
根据数据和环境,完全相同的查询可以在不同的时间有不同的执行计划。
这是非常重要的理解。不能指定执行计划是什么。优化器确定--不考虑CTE和子查询。您可以通过在查询中提供提示来影响执行计划。
https://stackoverflow.com/questions/57347568
复制相似问题