我需要合并两个具有相同结构的表table1
和table2
。它们主要有不同的行,但有些行是重复的。
有没有办法将table2
合并到table1
中,但在1个语句中省略了重复记录?
我对MySQL很新,任何帮助都会非常感激。
编辑:我到目前为止的查询就是这样:INSERT INTO table1
SELECT *
FROM table2
所以我不知道如何有选择地省去重复项。
答案 0 :(得分: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;
(当其他查询正在或可能正在访问时,请不要删除该表。)
答案 1 :(得分: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, ... ]
link:http://dev.mysql.com/doc/refman/5.1/en/insert-select.html