首页 > 解决方案 > MYSQL - 加入 2 个表 - 及时排序

问题描述

在我的数据库中,我有 2 个表。第一个表 (t1) 包含一般信息(id、地址等)。第二个表 (t2) 包含测量值(id、时间戳、测量值)。

我正在尝试查询数据库以获得每个 ID 的最新测量值。

为了说明我创建了 t1 和 t2 并运行以下命令:

SELECT          t2.val, t2.id, t2.ts, t1.address 
FROM            t2 
INNER JOIN      t1  
   ON           t1.id = t2.id
GROUP BY        t2.id
ORDER BY        t2.ts desc;

这里的结果是我没有列出最新的记录。例如,我得到以下(不是最新的)。

上述查询的结果

数据库中存储的最新记录是一个月后。如何在使用 JOIN 从 t1 获取地址时获取每个 ID 的最新记录?

谢谢

标签: mysqljoin

解决方案


试着找一个更大的时间,如果你不能,你有最新的时间

SELECT          t2.val, t2.id, t2.ts, t1.address 
FROM            t2 
INNER JOIN      t1  
   ON           t1.id = t2.id
LEFT JOIN       t2 as times
   ON           t2.ts < times.ts
  AND           t2.id = times.id
WHERE times.ts is NULL

推荐阅读