2011-08-18 128 views

回答

1

通过遍历两个排序列表中的所有记录,合并连接的工作方式如下。合并匹配它可以的记录,但始终返回左列表中的记录,即使没有右列表中的相应记录。由于记录在这两个列表中排序,因此该过程知道它可以放弃列表中任何匹配的可能性;

Get first record from leftList 
Get first record from rightList 

While not at the end of either list 
begin 
    if leftList key matches right list key 
    begin 
     return (leftList and rightList row) 
     move to next rightList row 
    end 
    else if no previous match found on leftList 
    begin 
     return (leftList) 
     move to next leftList row 
    end 
    else 
     move to next leftList row 
end 
+0

我看到一个合并连接,其中两个键不匹配,所以两个记录正在创建。所以在左边一列有“N”,另一边有与“Y”相同的列,它按这一列排序,但我得到两列,一列是“Y”,一列是“N”......这使得感觉合并,但我没有关注伪代码是如何发生的...... – John

+0

如果你从两侧获得不匹配的行,那么它听起来像你有一个完整的外连接选择。在合并加入转换编辑器中,设置为加入类型的是什么?如果您选择了左连接,则不应该看到只有右表上的键存在的行。 –

+0

我认为我误读了右侧的行,但非常感谢您的解释! – John