left join 中查询时间最近的一条
时间: 2023-11-30 10:06:28 浏览: 57
oracle 多表查询
5星 · 资源好评率100%
如果你的数据库支持窗口函数,可以使用 ROW_NUMBER() 函数来实现。以下是一个示例查询:
```
SELECT t1.*, t2.*
FROM table1 t1
LEFT JOIN (
SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY created_at DESC) AS rn
FROM table2
) t2 ON t1.id = t2.id AND t2.rn = 1;
```
上面的查询中,我们首先在表2中使用窗口函数按照 id 和 created_at 排序,然后为每个 id 分配一个行号。接着,我们将这个子查询的结果与表1进行左连接,并且只选择行号为 1 的记录,也就是时间最近的一条记录。
阅读全文