如何比较具有相同结构的两个表并使用mySQL查找不匹配的记录?

时间:2012-03-06 13:44:18

标签: mysql compare

我有两张具有相同结构的表。

TABLE-1
--------
ID  NAME
1   AAAA
2   BBBB
3   CCCC
4   DDDD

TABLE-2
--------
ID  NAME
1   AAAA
2   BBBB
3   CCCC
4   DDDD
5   eeee
6   ffff
7   gggg
8   hhhh
9   iiii

如何将这些表与MySQL进行比较,并在TABLE-1中的TABLE-2中添加不匹配的行?

3 个答案:

答案 0 :(得分:1)

Insert into table-1 (select id,name from table-2 where id not in (select id from table-1));

答案 1 :(得分:1)

如果IDNAME中的任何一个被定义为唯一键或组合唯一键(例如primary key (ID, NAME))那么可以使用INSERT IGONRE .. SELECT

INSERT IGNORE INTO TABLE1 SELECT * FROM TABLE2

如果它们是关键字,则在我们使用INSERT IGNORE

时插入时会忽略重复的列

答案 2 :(得分:0)

我找到了答案。 此代码正常工作并返回不匹配的行。

SELECT * FROM TABLE-1
WHERE TABLE-1.ID
NOT IN (
SELECT TABLE-2.ID
FROM TABLE-2
WHERE TABLE-2.ID=TABLE-1.ID
)