2011-08-18 78 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