我有两张具有相同结构的表。
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中添加不匹配的行?
答案 0 :(得分:1)
Insert into table-1 (select id,name from table-2 where id not in (select id from table-1));
答案 1 :(得分:1)
如果ID
,NAME
中的任何一个被定义为唯一键或组合唯一键(例如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
)