我需要合并2个具有相同结构的表,table1
和table2
。他们大多数行不同,但有些行是重复的。在MySQL中合并2个表与一些重复的数据
有没有办法将table2
合并成table1
,但是在1条语句中省略了重复记录?
我很新的MySQL的任何帮助将不胜感激。
编辑:查询我到目前为止仅仅是这样的:
INSERT INTO table1
SELECT *
FROM table2
所以我不知道该如何选择离开了重复。
我需要合并2个具有相同结构的表,table1
和table2
。他们大多数行不同,但有些行是重复的。在MySQL中合并2个表与一些重复的数据
有没有办法将table2
合并成table1
,但是在1条语句中省略了重复记录?
我很新的MySQL的任何帮助将不胜感激。
编辑:查询我到目前为止仅仅是这样的:
INSERT INTO table1
SELECT *
FROM table2
所以我不知道该如何选择离开了重复。
如果你只是想要的结果:
select * from table1 union select * from table2;
联盟将删除重复。
如果要创建具有一个新表:
create table merged_table(select * from table 1 union select * from table2);
然后,您可以:
drop table table1;
rename table merged_table to table1;
(不要或删除表,而其他的查询都可能)
我该如何得到此检查重复从某些列?每个表格当前都有自己的ID,因此使用ID进行比较不会导致任何重复。 – 2013-04-20 19:34:34
您可以试试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-20 19:22:40
@TriNguyen在重复... – SaidbakR 2013-04-20 19:24:40
如果我有这些表的'ID'列到'AUTO_INCREMENT',然后指定为'PRIMARY KEY',有没有办法检查在这个过程中使用其他列重复? – 2013-04-20 19:33:39
我们应该猜到你的查询? – 2013-04-20 19:15:44
@echo_me他谈到一个原则,我认为在他的问题中不需要查询。 – SaidbakR 2013-04-20 19:17:03
@echo_me我不确定查询应该是什么。我到目前为止唯一的事情是'INSERT INTO table1 SELECT * FROM table2',但我不知道如何省略重复的记录。 – 2013-04-20 19:19:54