我有两个通过 user_id 关联的表,我需要使用以下条件连接这些表:
- 首先,它们应该与自己的用户相关
- 其次,对于第一个表中的每条记录,应该选择第二个表中与第一个表中创建日期最接近的相应记录。
考虑这两个表:
表_1
表_2
预期结果
最佳答案
横向连接的行为类似于 foreach 循环。以下内容在 PostgreSQL 中有效。它是一个左连接横向,用于处理示例结果中的 name
'B'。交叉连接横向不会返回该行。
select t1.*, t2.created_at as t2_created_at
from table_1 t1
left join lateral (select user_id, created_at
from table_2
where user_id = t1.user_id
and created_at >= t1.created_at
order by created_at
limit 1) t2
on true;
关于sql - 如何根据创建日期查找两个表中最接近的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76905512/