MYSQL-联接2个表-按时间排序

时间:2019-06-13 14:22:27

标签: mysql join

在我的数据库中,我有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;

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

Result from the above query

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

谢谢

1 个答案:

答案 0 :(得分:2)

如果找不到最新的时间,请尝试寻找更大的时间

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