我需要合并 2 个具有相同结构的表,table1
并且table2
. 它们大多具有不同的行,但有些行是重复的。
有没有办法合并table2
但table1
在 1 条语句中省略重复记录?
我对 MySQL 很陌生,任何帮助将不胜感激。
编辑:我到目前为止的查询就是这样的:
INSERT INTO table1
SELECT *
FROM table2
所以我不知道如何选择性地忽略重复项。
我需要合并 2 个具有相同结构的表,table1
并且table2
. 它们大多具有不同的行,但有些行是重复的。
有没有办法合并table2
但table1
在 1 条语句中省略重复记录?
我对 MySQL 很陌生,任何帮助将不胜感激。
编辑:我到目前为止的查询就是这样的:
INSERT INTO table1
SELECT *
FROM table2
所以我不知道如何选择性地忽略重复项。
如果你只想要结果:
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;
(不要在其他查询正在或可能正在访问该表时删除该表。)
您可以尝试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