我想将 tblA 的唯一值添加到 tblB 而不创建基于多个字段的重复值。在以下示例中,FirstName 和 LastName 确定重复项,Foo 和 Source 无关紧要。
tblA:
名字姓氏Foo来源 约翰·多伊 1 A 简·多伊 2 A 史蒂夫史密斯 3 A 比尔约翰逊 2 A
表:
名字姓氏Foo来源 约翰·多伊 1 B 鲍勃·史密斯 5 B 史蒂夫·史密斯 4 B
这是我想要的结果:
tblA:
名字姓氏Foo来源 约翰·多伊 1 A 简·多伊 2 A 史蒂夫史密斯 3 A 比尔约翰逊 2 A 鲍勃·史密斯 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:
名字姓氏Foo来源 约翰·多伊 1 A 简·多伊 2 A 史蒂夫史密斯 3 A 比尔约翰逊 2 A 约翰·多伊 1 B 鲍勃·史密斯 5 B
来自 tblB 的 Steve Smith 被忽略了,这很好。添加了来自 tblB 的 John Doe,这很糟糕。我在这方面花费了太多时间,并且我已经以我能想到的各种方式检查了数据,以确保 tblA 和 tblB 中的 John Doe 的名字和姓氏相同。关于可能出现问题的任何想法?
更新:仅供参考,在我真正的 tblB 上,30,000 中的大约 10,000 应该移动到 tblA。这实际上移动了 21,000 多个。问题是这是一个常见过程的一个步骤。