嵌套循环连接
在这种连接操作中,它处理来自外部输入的每一行并循环遍历内部输入的所有行,以基于连接列搜索匹配的行。
嵌套循环连接通常使用索引在外部表的每一行的内部表上执行搜索。 例如:
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
答案 0 :(得分:0)
我宁愿用这种方式编写查询:
SELECT T1.Col2
FROM Table1 T1
INNER JOIN Table2 T2 ON T1.Col1 = T2.Col1
WHERE T1.Col1 BETWEEN 1 AND 36
第二个条件不是连接条件,而是where条件(Table2不参与解决该条件)。
你的数据库的优化器应该能够决定过滤第一个Table1是否比连接Table2更快然后过滤,我想如果Table2非常小,后者可以是真的。索引也可以更改查询计划。
无论如何,如果您想确定数据库执行查询的方式,请查看查询计划。
答案 1 :(得分: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