我想将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