我想將tblA的唯一值添加到tblB,而不會創建基於多個字段的重複值。在以下示例中,FirstName和LastName確定重複項,Foo和Source不相關。訪問2007年SQL合併表,而不會創建重複
TBLA:
FirstName LastName Foo Source John Doe 1 A Jane Doe 2 A Steve Smith 3 A Bill Johnson 2 A
TBLB:
FirstName LastName Foo Source John Doe 1 B Bob Smith 5 B Steve Smith 4 B
這是我想要的結果:
TBLA:
FirstName LastName Foo Source John Doe 1 A Jane Doe 2 A Steve Smith 3 A Bill Johnson 2 A Bob Smith 5 B
下面的代碼的等效我試着:
INSERT INTO tblA
SELECT B.* FROM tblB AS B
LEFT JOIN tblA AS A ON A.FirstName = B.FirstName AND A.LastName = B.LastName
WHERE A.FirstName IS NULL
這是結果我得到:
TBLA:
FirstName LastName Foo Source John Doe 1 A Jane Doe 2 A Steve Smith 3 A Bill Johnson 2 A John Doe 1 B Bob Smith 5 B
從TBLB史蒂夫·史密斯被忽略,這是很好的。來自tblB的John Doe被添加,這是不好的。我在這方面花了太多時間,我已經仔細檢查了數據,以確保tblA和tblB中的John Doe具有相同的名字和姓氏。有什麼想法可能會出錯?
更新:FYI,在我的真實tblB上,約10,000的30,000應該被移到tblA。實際上這是超過21,000。問題是這是一個普通過程的一個步驟。
關於你最近的編輯,它仍然是有效的,以測試一種情況下按我的意見。如果它證明是隱藏的字符,則可以考慮各種其他方法,這取決於字符。例如,Excel有時會傳遞字符255,看起來像一個空格。 – Fionnuala 2012-08-02 21:59:47