我想了解sql查询中嵌套连接子句的过程。你能用伪代码解释这个例子吗? (连接表的顺序是什么?)
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
答案 0 :(得分:2)
在SQl中,基本上我们有3种方法可以连接两个表。
嵌套循环(如果一个表的行数很少,则很好), 散列连接(如果两个表都有非常大的行,那么它很好,它会在内存中形成昂贵的散列) 合并加入(当我们对要加入的数据进行排序时很好)。
从您的问题看来,您似乎想要嵌套循环。
让我们说t1有20行,t2有500行。
现在就像
对于t1中的每一行 在t2中查找t1.MainId = t2.MainId
的行现在将把它加入t3。
加入顺序取决于优化程序,预期行数等。
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您使用的是SQL Server查询分析器,请在“查询”菜单下查找“显示Execution Plan”,然后启用它。