多个联接如何工作?

时间:2018-03-15 08:29:30

标签: sql-server teradata

在分析数据时我感到困惑。请找到以下示例查询。

Select std.Id,dept.name
from student std
inner join profile Prof 
        on std.id=prof.reg_id
left outer join department dept 
        on std.id=dept.std_id and dept.name='cse'

我想知道Join如何运作? 我的想法是,学生表将使用配置文件表进行内连接,结果将在临时空间中,然后学生表将使用部门表执行LOJ,结果将在另一个临时空间中。最后数据将根据条件合并。

如果我错了,请纠正我?

1 个答案:

答案 0 :(得分:0)

查询执行不会在单个步骤中进行,其中收集操作的所有输入,然后处理操作,然后将输出传递到其他位置(到另一个操作的输入或结果)。它改为在数据流中进行,当中间结果的每一行都可用时,下一个操作可以开始处理它。

通常,一次需要整个中间结果集的唯一时间是排序操作。

确切地选择执行哪些操作来执行查询取决于可用的索引以及每个步骤估计的行数。您可以查看执行计划以查看查询中选择的内容。