0

我需要合并 2 个具有相同结构的表,table1并且table2. 它们大多具有不同的行,但有些行是重复的。

有没有办法合并table2table1在 1 条语句中省略重复记录?

我对 MySQL 很陌生,任何帮助将不胜感激。

编辑:我到目前为止的查询就是这样的:

INSERT INTO table1
SELECT *
FROM table2

所以我不知道如何选择性地忽略重复项。

4

2 回答 2

3

如果你只想要结果:

select * from table1 union select * from table2;

工会将删除重复项。

如果要使用结果创建一个新表:

create table merged_table
    select * from a1.t1 
    union 
    select * from a2.t1;

然后您可以:

drop table table1;
rename table merged_table to table1;

(不要在其他查询正在或可能正在访问该表时删除该表。)

于 2013-04-20T19:19:13.673 回答
2

您可以尝试INSERT SELECT,以便将 table2 合并到 table1

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] table2 [(col_name,...)]
    SELECT * FROM table1
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]

链接:http ://dev.mysql.com/doc/refman/5.1/en/insert-select.html

于 2013-04-20T19:19:24.847 回答