我有2张桌子,如下所述...
table_1
| id | system_id |
| 1 | 3 |
| 2 | 12 |
| 3 | 45 |
| 4 | 7 |
table_2
| id | system_id |
| 1 | 3 |
| 2 | 12 |
我想用table_1中的剩余行更新table_2,不包括已经存在的行。
我尝试了以下查询...
UPDATE table_2
INNER JOIN table_2 ON table_2.system_id = table_1.system_id
SET table_2.system_id = table_1.system_id
这将使用来自table_1的所有行更新table_2。我无法解决如何排除现有行。 感谢您的任何事先帮助。
答案 0 :(得分:0)
如果要在table_2
中创建新行,则需要insert
,而不是update
。如果要同时更新现有行上的system_id
,可以使用on duplicate key
。
假设每个表的主键是id
,您将执行以下操作:
insert into table_2 (id, system_id)
select id, system_id
from table_1
on duplicate key update system_id = values(system_id)