如何合并两个具有相同结构的mysql表

时间:2014-03-08 01:25:50

标签: mysql sql merge

我有2个表具有相同的结构和相同的id(作为主键)但不同的数据:

two mysql tables with same structure but different data

现在,我需要合并它们,并且有类似的东西:

merged mysql table

重要的是不要更改行的ID而不插入新记录。

如何使用MySQL查询?

2 个答案:

答案 0 :(得分:1)

认为您只需要使用两个表中的UPDATE执行INNER JOIN查询。我假设id列是如此

UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.fax = b.fax

否则你可以设置一个新表并通过加入前两个表来获取值,如下所示

INSERT INTO table3 (id, tel, fax) 
SELECT a.id, a.tel, b.fax
FROM table1 a
INNER JOIN table2 b
ON a.id = b.id

答案 1 :(得分:1)

首先,备份您的数据。然后,如果您只想结束一个表(并且主键匹配),那么试试这个:

UPDATE `table1`
SET `table1`.`fax` = `table2`.`fax`
WHERE `table1`.`id` = `table2`.`id`;

如果这不起作用,那么你做一个备份是件好事。