将2个表与重叠的ID合并

时间:2011-07-07 05:03:01

标签: mysql sql merge

我有2张桌子,他们的结构相同但用于2个不同的应用程序。因此,每个记录都有唯一的记录(来自app1的记录在app2中不存在)。但它们的ID由2个应用程序单独维护。因此,app1中的ID可能存在于app2中,但信息不同。

我需要将这两个表记录合并到一个表中,因为这两个应用程序正在合并为一个。问题在于ID。我可能会重置id并重新生成每条记录的唯一ID。其他表未引用ID,因此重置它不是问题。但我不确定如何执行此操作。

3 个答案:

答案 0 :(得分:6)

创建一个包含自动增量(id)列的表。

然后创建一个INSERT ... SELECT查询以从每个表中导入数据

E

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,... -- ommiting the id column
FROM old_table1

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,...-- ommiting the id column
FROM old_table2

答案 1 :(得分:1)

此处使用INSERT INTO .. SELECT FROM - 没有id列。 Aslo,我会把一个application_id列放到新表中 - 只是为了确保我知道哪些数据来自哪里:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 1, col1,col2,... 
FROM old_table1

申请2:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 2, col1,col2,... 
FROM old_table2

答案 2 :(得分:0)

  

因此,来自app1的ID可能存在于app2中   但是信息不同。

您可能希望查看的一个选项是using a view,以便以适用于任何应用程序的格式合并两个表的数据。