我有两个SQL2008表,一个是包含新数据的“导入”表,另一个是包含实时数据的“目标”表。两个表类似但不相同(CRM系统更新了目标表中的更多列),但两个表都有三个“电话号码”字段 - Tel1,Tel2和Tel3。我需要删除导入表中的所有记录,其中任意的电话号码已经存在于目标表中。查找两个表之间的重复项
我试着碰在一起的简单查询(只是一个SELECT与刚才测试):
select t2.account_id
from ImportData t2, Destination t1
where
(t2.Tel1!='' AND (t2.Tel1 IN (t1.Tel1,t1.Tel2,t1.Tel3)))
or
(t2.Tel2!='' AND (t2.Tel2 IN (t1.Tel1,t1.Tel2,t1.Tel3)))
or
(t2.Tel3!='' AND (t2.Tel3 IN (t1.Tel1,t1.Tel2,t1.Tel3)))
...但我知道这是几乎可以肯定不是这样做的事情,特别是因为它非常缓慢。任何人都可以将我指向正确的方向吗?
谢谢 - 这个工程非常好,非常快,我真的明白它是什么:) – KenD 2011-03-01 18:01:22
我会改变工会的所有挤出这个查询一点额外:) – luckyluke 2011-03-01 20:15:59