在我的数据库中,我有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的最新记录?
谢谢
答案 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