选择唯一记录并插入另一个表中,避免重复记录

时间:2017-12-04 12:58:11

标签: sql tsql sql-server-2012

我有两张桌子(userfrom和userto)。

我想从" userfrom"中插入数据表格" userto"并希望在两列上实现条件,即"用户名"和"约会"。

基本上我正在粘贴来自" userfrom"的数据。表格" userto"。

插入前的条件是。

相同"用户名"与#34;日期"不应插入。 可以使用相同的用户名,但日期不同。

两个表之间只有用户名相同

请注意:(重新运行插入查询时,我不希望重复相同的数据。此插入查询在30分钟内运行5次) 表userfrom

1 sampleusername  2017-12-04
2 sampleusername  2017-12-04
3 sampleusername2 2017-12-04
4 sampleusername  2017-12-05

usertto

1 sampleusername  2017-12-04
2 sampleusername2 2017-12-04
3 sampleusername  2017-12-05

2 个答案:

答案 0 :(得分:1)

SQL DEMO

您可以在sql server中使用GROUP BYEXISTS,如下所示:

insert into userto (username, date)
select distinct username, date from userfrom uf
where 
not exists(select 1 from userto where username=uf.username and date=uf.date)

答案 1 :(得分:0)

您可以LEFT JOIN这两个表,然后只插入userfrom中不存在于userto表中的值,如下所示:

INSERT INTO userTo
    (
        username
        ,userDate
    )
SELECT DISTINCT f.username
      ,f.userDate
FROM usertrom f
LEFT JOIN userto t ON f.username = t.username AND f.userDate = t.userDate
WHERE t.id IS NULL
相关问题