MySQL:选择两个数据库中时间戳不匹配的所有行

MySQL:选择两个数据库中时间戳不匹配的所有行,mysql,sql,performance,comparison,Mysql,Sql,Performance,Comparison,我正在尝试比较不同数据库中的两个表(或者寻找最好的方法) 数据库1中的表: id int(11) lastmod int(11) 数据库2中的表: id int(11) timestamp int(11) 这两个表都有匹配的id(id在db1中不是唯一的,就像一(db2)对多(db1))和时间戳(但其他列不同)。但随着时间的推移,数据库2中的记录将被更新(数据位于一个不重要的列中)。现在我需要查找记录(时间戳),比较ID,以找到需要在database

我正在尝试比较不同数据库中的两个表(或者寻找最好的方法)

数据库1中的表:

id  int(11) 
lastmod int(11) 
数据库2中的表:

id          int(11) 
timestamp   int(11)     
这两个表都有匹配的id(id在db1中不是唯一的,就像一(db2)对多(db1))和时间戳(但其他列不同)。但随着时间的推移,数据库2中的记录将被更新(数据位于一个不重要的列中)。现在我需要查找记录(时间戳),比较ID,以找到需要在database one中更新的记录。 问题还在于性能,因为两个表都有超过5000条记录。
查找需要更新的记录的最佳方法(最佳)是什么?

假设
id
是两个表中的主键,那么以下方法应该是有效的:

select *
from db1.table t1 join
     db2.table t2
     on t1.id = t2.id and
        t1.lastmod <> t2.timestamp

如果您确实要在
t1
中查找具有多个修改的记录,请在子查询中添加一个
having count(*)>1

您可以使用一些触发器实时更新它们。否则,您可以将一个表连接到另一个表,并检查时间戳是否不同。你们能给我看一个连接查询的例子吗?若id在db1中不是唯一的呢?喜欢一(db2)对多(db1)谢谢!工作很好:)
select *
from (select t1.id, max(t1.lastmod) as lastmod
      from db1.table t1
      group by t1.id
     ) t1 join
     db2.table t2
     on t1.id = t2.id and
        t1.lastmod <> t2.timestamp