很抱歉这个很长的问题/帖子但需要一些帮助,因为我已经搜索了好几天但没有发现任何有用的东西。看起来应该很容易,但是......其他地方
我的(Access 2010)数据库中有table1,它具有现有记录。我有另一个table2,在我运行查询后,它首先删除表2中的数据,然后将新记录导入该表。我定期将导入导入表2,但尚未成功将所有这些记录复制到表1中。
如果table1中不存在记录,我只需要将表2中的记录复制到表1。因此,每次运行查询或vba代码时,都会继续增加表1,而不会复制现有数据。
为了进一步说明,它是来自Outlook GAL的数据,因此每次table2导入需要添加到table1的数据(lname,fname,phone,email),但前提是表1中尚不存在。
我有一个很小的SQL开始,但无法让它正常工作,因为我不确定如何正确地将其他字段添加到此SQL语句中(遗憾的是我不太了解SQL或创建附加内容)查询):
INSERT INTO [Current] ( FirstName )
SELECT DISTINCT tblglobaladdresslistimport.First
FROM tblglobaladdresslistimport LEFT JOIN [Current] ON tblglobaladdresslistimport.First = Current.FirstName
WHERE Current.FirstName Is Null;
答案 0 :(得分:0)
这个怎么样:
INSERT INTO [Current](FirstName, LastName, Phone, Email)
SELECT DISTINCT
tblglobaladdresslistimport.First
, tblglobaladdresslistimport.Last
, tblglobaladdresslistimport.Phone
, tblglobaladdresslistimport.Email
FROM
tblglobaladdresslistimport LEFT JOIN [Current]
ON tblglobaladdresslistimport.First = Current.FirstName
AND tblglobaladdresslistimport.Last = Current.LastName
AND tblglobaladdresslistimport.Phone = Current.Phone
AND tblglobaladdresslistimport.Email = Current.Email
WHERE Current.FirstName Is Null
AND Current.LastName Is Null
AND Current.Phone Is Null
AND Current.Email Is Null;
如果我猜错了,请调整列名。假设您没有主键,因此tblglobaladdresslistimport
中的数据已经存在,如果Current
中有一行对所有列都有相同的值。