我有表A和B,相同,带有时间戳列。我需要使用B更新A,添加B中不存在于A中的所有行,并使用相同的pk更新已存在的所有行。这与INSERT ... ON DUPLICATE KEY UPDATE
条款有关。但是,A可能包含的行实际上比B中的同一行更新,因此在A.last_modified > B.last_modified
我不想做任何事情的情况下。
有没有简单的解决方案?
答案 0 :(得分:1)
您可以使用左连接来获取所需的行
insert into B
select a.*
from A a
left join B b on a.id = b.id
where b.last_modified < a.last_modified or b.last_modified is null
on duplicate key update ...;