【发布时间】:2010-01-07 08:34:06
【问题描述】:
想了解sql查询中嵌套join子句的过程。你能用伪代码解释这个例子吗? (连接表的顺序是什么?)
FROM
table1 AS t1 (nolock)
INNER JOIN table2 AS t2 (nolock)
INNER JOIN table3 as t3 (nolock)
ON t2.id = t3.id
ON t1.mainId = t2.mainId
【问题讨论】:
-
除非您使用连接提示(顺便说一句,这是一个非常糟糕的想法),否则您无法控制连接的“顺序”。基本上,RDBMS 的查询优化器将检查查询、考虑索引和表统计信息,并确定适当的查询计划以返回请求的数据。
-
PS:请谨慎使用
nolock提示;当你这样做时,你会暴露自己的数据完整性问题。根据您提出的问题,我怀疑您是否完全了解何时使用nolock提示是安全/可接受的细微差别。
标签: sql sql-server join