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

标签 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 的最新记录?

谢谢

最佳答案

尝试找一个更大的时间,如果找不到,就找最晚的时间

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

关于MYSQL - 连接2个表 - 按时间排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56582661/

相关文章:

php - 来自 MySQL 结果的 JSON 对象

mysql - 将两部分 SQL 查询合并为一个查询

MySQL 有 2 个表

mysql - 按具有 max(date_field) 的 id 分组

mysql - 返回 SQL 中的所有连接行

php - PayPal IPN 记录但未插入 MySQL

python - Django (DRF) 序列化程序插入 NULL

javascript - 从数据库中检索后解码 base64 图像失败

PHP/innerHTML 使用两个 while 循环导致数据库部分输出到 html 表之外

php - 在 CODEIGNITER 中连接三个表