2014-01-13 30 views
0

我有一个是由以下字段的表: LOCATION_ID,USER_ID,姓氏,FIRST_NAME先生生日,SSN基于已经在表中对数据进行匹配更新特定字段

我试图与它合并另一个包含相同模式的表。但是,需要注意的是,由于应用程序的不同版本,用户可能存在于两个表中并且具有不同的User_ID。如果我只是简单地合并它们,我会得到重复的,其中一个Last_Name,First_Name,Birthday,SSN可能有两个与之关联的User_ID。

我想要做的是将我的新数据集合并到旧数据集中,匹配Last_Name,First_Name,Birthday和SSN,并且只添加具有新User_ID的用户,如果没有与那些匹配的条目以前的四个约束。我无法正确地做到这一点。有什么建议么?

+4

请发布您在问题本身难以处理的代码。 – Kermit

+0

必须同意@FreshPrinceOfSO,因为我们需要知道在我们可以帮助您之前,您是如何尝试尝试做什么的。......为每个人提供更好的起点。 – user2366842

回答

0

我会试试follwing。对于要插入/更新的每条记录,首先检查是否有匹配字段的行(First_Name,Last_Name等),如果有匹配的行,则运行更新命令,否则插入。

0

下面是使用标准SQL的方法:

insert into t1(User_ID, Last_Name, First_Name, Birthday, SSN) 
    select User_ID, Last_Name, First_Name, Birthday, SSN 
    from t2 
    where not exists (select 1 
         from t1 
         where t1.Last_Name = t2.Last_Name and 
          t1.First_Name = t2.First_Name and 
          t1.Birthday = t2.Birthday and 
          t1.SSN = t2.SSN 
        ); 

已经提供了SQL,我怀疑它不会在这种情况下,真正的工作。通常情况下,当你遇到这样的问题时,你在两张表格中的内容也会略有不同。例如,可能有第一个名字,而另一个名字是完整名字。或者可能有一个后缀名前面加逗号,而另一个没有逗号。