Sql Access-合并具有相同结构的两个数据库
我想编写一个将两个Access 2000数据库合并为一个数据库的查询。每个表都有35个表,其中包含相同的字段和大部分唯一的数据。有些行将具有相同的“主键”,在这种情况下,数据库A中的行应始终优先于数据库B。我在“主键”周围使用引号,因为生成的数据库没有任何键或关系。例如: 数据库A,表1Sql Access-合并具有相同结构的两个数据库,sql,ms-access,Sql,Ms Access,我想编写一个将两个Access 2000数据库合并为一个数据库的查询。每个表都有35个表,其中包含相同的字段和大部分唯一的数据。有些行将具有相同的“主键”,在这种情况下,数据库A中的行应始终优先于数据库B。我在“主键”周围使用引号,因为生成的数据库没有任何键或关系。例如: 数据库A,表1 col1 col2 Frank red Debbie blue 数据库B,表1 col1 col2 Harry orange Debbie pink 我想要的结果是: col1
col1 col2
Frank red
Debbie blue
数据库B,表1
col1 col2
Harry orange
Debbie pink
我想要的结果是:
col1 col2
Frank red
Harry orange
Debbie blue
这些数据库是由不懂sql的用户生成和下载的,所以我只想给他们一个复制和粘贴的查询。他们显然必须从导入或链接一个DB[in]到另一个DB[in]开始
我猜我必须用组合结果查询生成第三个表,然后删除另外两个表。不过,理想情况下,它只需将数据库A的行添加到数据库B中(必要时重写)
当然,我并不是在寻找一个完整的答案,只是希望能从哪里开始得到一些建议。我有一些mySQL的经验,了解连接的基本知识。是否可以在一个查询中完成这一切,或者每个表都必须有一个单独的查询
谢谢 这不是一个SQL解决方案,但也可以告诉不懂SQL的用户剪切和粘贴SQL语句
SELECT t.ID, t.Field1, t.Field2 INTO NewTable FROM
(SELECT a.ID, a.Field1, a.Field2
FROM Table1 A
UNION
SELECT x.ID, x.Field1, x.Field2
FROM Table1 x IN 'C:\docs\db2.mdb'
WHERE x.ID NOT IN (SELECT ID From Table1)) t
为什么要从标题中删除
SQL
?我正在寻找一个SQL查询作为答案。此SQL假设两个数据库中具有相同ID的记录实际上是相同的记录。如果数据库的两个副本出现分歧,可能会有不相同记录的重叠ID,因为它们是在两个副本分叉后创建的。用户似乎意识到了这一点,并提到需要Debbie Blue,而不是分歧的Debbie Pink记录。我只是在评论中指出一些隐含的假设,因为其他人可能有一天会遇到这个问题,而他们的特殊情况却没有这样的背景。