如何按日期从两个Mysql表中获取增量

如何按日期从两个Mysql表中获取增量,mysql,Mysql,我有两个结构相同的mysql表。现在我想得到表1中所有比表2中相同记录更新的记录 table 1 id name namespace updated 437 test test/test1 2016-09-02 09:17:13 436 test test/test2 2016-09-04 09:17:13 435 test test/test3 2016-09-05 09:17:13 table 2 id name namespace

我有两个结构相同的mysql表。现在我想得到表1中所有比表2中相同记录更新的记录

table 1

id    name   namespace   updated
437   test   test/test1  2016-09-02 09:17:13
436   test   test/test2  2016-09-04 09:17:13
435   test   test/test3  2016-09-05 09:17:13

table 2
id    name   namespace   updated
433   test   test/test1  2016-09-02 09:17:13
434   test   test/test2  2016-09-04 09:17:13
437   test   test/test3  2016-09-04 09:17:13
结果总是超出预期

这是我的声明

SELECT a.`id` , a.`name` , a.`namespace`, a.`created` , 
a.`updated` 
FROM table1 AS a
LEFT JOIN table2 AS b ON a.`name` = b.`name` 
AND a.`namespace` = b.`namespace` 
WHERE a.`updated` > b.`updated` 
怎么了


多谢各位

如果使用左连接,则在where子句中设置与左连接表相关的值,否则这些值将用作内部连接

在ON子句中添加和

最后检查未连接行的空左连接值

  SELECT a.`id` , a.`name` , a.`namespace`, a.`created` , 
  a.`updated` 
  FROM table1 AS a
  LEFT JOIN table2 AS b ON a.`name` = b.`name` 
  AND a.`namespace` = b.`namespace` and  a.`updated` > b.`updated` 
  where b.id is null  

尽量避免毫秒

SELECT a.`id` , a.`name` , a.`namespace`, a.`created` , 
  a.`updated` 
  FROM table1 AS a
  LEFT JOIN table2 AS b ON a.`name` = b.`name` 
  AND a.`namespace` = b.`namespace` 
   and DATE_FORMAT(a.`updated`,'%Y-%m-%d %H:%i') > DATE_FORMAT(b.`updated`,'%Y-%m-%d %H:%i')
  where b.id is null  

好的,我提出了一个解决方案,它总是为每个名称空间返回最新的id

为此,我创建了一个

SELECT * FROM
    (SELECT * FROM table1 
     UNION
     SELECT * FROM table2
     ORDER BY updated DESC
    ) A
GROUP BY A.namespace
ORDER BY updated DESC
这没有捕获到一个id可能是2个名称空间的最新id


输出应该是什么?顺便说一句,where子句将左连接转换为一个内部连接,每个id的名称和命名空间都相同?它应该只返回id为435的记录,因为它比表2 437中的等效项新。每个id的名称和命名空间都不相同。谢谢。但这也会返回两个表中“更新”相同的记录。我只想更新列的数据类型??你有几秒钟的时间?谢谢你的努力和努力。但这给了我3张唱片。对于我之前提到的sql,我得到了正确的结果,这很奇怪。但当我使用真实数据运行sql时,它会返回更新日期相同的记录。我只希望表1中的所有记录在col'updated'中具有更新的日期。顺便说一句,id不匹配。@stacker啊,好的,我不明白您到底想要实现什么。我想我的方法行不通,但我以后会再研究。