查询执行中ON和JOIN的顺序
Order of ON and JOIN in query execution
参考here关于SELECT查询的执行顺序,在JOIN
之前有一个ON
。
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE or WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
我倾向于认为这个 ON
是作为 JOIN
的一部分的 ON
子句。
如果是假的,这是什么ON
?
如果它是真的,那么它有点混乱,因为我认为在做 JOIN
时,SQL 服务器在过滤之前做 CROSS JOIN
ON
。这可能不是严格正确的,因为 SQL 服务器有一些机制来优化这个过程,关于选择一个较小的 table 作为内部 table 来循环外部 table 我记得对于 ON
条件是正确的。那么在这种情况下, JOIN
在执行顺序中不会在 ON
之前吗?
你能解释一下我提到的内容吗?
是的。 ON 用于 Join
这是逻辑顺序。物理顺序可能不同。你的 link 也提到了这个 .
注意语句的实际物理执行是
由查询处理器确定,顺序可能与此列表不同。
参考here关于SELECT查询的执行顺序,在JOIN
之前有一个ON
。
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE or WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
我倾向于认为这个 ON
是作为 JOIN
的一部分的 ON
子句。
如果是假的,这是什么
ON
?如果它是真的,那么它有点混乱,因为我认为在做
JOIN
时,SQL 服务器在过滤之前做CROSS JOIN
ON
。这可能不是严格正确的,因为 SQL 服务器有一些机制来优化这个过程,关于选择一个较小的 table 作为内部 table 来循环外部 table 我记得对于ON
条件是正确的。那么在这种情况下,JOIN
在执行顺序中不会在ON
之前吗?
你能解释一下我提到的内容吗?
是的。 ON 用于 Join
这是逻辑顺序。物理顺序可能不同。你的 link 也提到了这个 .
注意语句的实际物理执行是