0

嵌套循环连接

在这种连接操作中,它处理来自外部输入的每一行,并循环遍历内部输入的所有行,以根据连接列搜索匹配的行。

嵌套循环连接对外部表的每一行执行内部表的搜索,通常使用索引。例子:

Select T1.Col2
From Table1 T1
Inner Join Table2 T2 ON T1.Col1 = T2.Col1 AND T1.Col1 between 1 AND 36

你能解释一下哪个是外部输入和内部输入。这里我们有两个条件是T1.Col1 = T2.Col1 AND T1.Col1 between 1 AND 36 table is first filtered by which condition

4

2 回答 2

0

我宁愿这样写查询:

    SELECT T1.Col2
      FROM Table1 T1
INNER JOIN Table2 T2 ON T1.Col1 = T2.Col1 
     WHERE T1.Col1 BETWEEN 1 AND 36

第二个条件不是连接条件,而是 where 条件(表 2 不参与解决该条件)。

您的数据库的优化器应该能够决定是否先过滤 Table1 比加入 Table2 然后过滤更快,我想如果 Table2 非常小,后者可能是真的。索引也可以改变查询计划。

无论如何,如果您想确定数据库如何执行查询,只需检查查询计划。

于 2013-10-23T07:03:26.713 回答
0
SELECT T1.Col2
      FROM Table1 T1
INNER JOIN Table2 T2 ON T1.Col1 = T2.Col1 
     WHERE T1.Col1 >=1 and T1.Col1<36

你会发现更好的解释加入跟随链接

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
于 2013-10-23T07:08:31.750 回答