从内部连接表中检索最新记录
Posted
技术标签:
【中文标题】从内部连接表中检索最新记录【英文标题】:Retrieve newest record from inner join table 【发布时间】:2021-10-27 16:49:40 【问题描述】:目前使用内部连接来拉取交易记录。这导致连接的左侧返回每个右侧表值的值。 *如果没有内连接,则从左侧表返回单个记录。 使用内连接右侧表,将为每个右侧记录返回一条左侧记录。
你知道如何从正确的表中区分“最新”记录吗?是否有任何时间戳列、ID 或类似的东西?
是的,有一个序列号。
理想的解决方案是只返回一个左行,以及右表中的最新记录。
【问题讨论】:
你知道如何区分右表中的“最新”记录吗?是否有任何时间戳列、ID 或类似的东西?因为,如果没有,你就不能做你想做的事。 是的,那个表里有序号 包含一个可重现的测试用例总是有帮助的。创建两个表的 DDL,插入一些数据的 DML,以及在这种情况下的预期结果。 这不是INNER
或OUTER
问题的加入类型,而更多的是“我如何只加入最新记录”类型的问题。如果您对以下答案不满意,请提供示例数据和所需结果。
【参考方案1】:
细节不多,但希望你能适应这个:
SELECT
table_with_one_row t
INNER JOIN
(
SELECT u.*, ROW_NUMBER() OVER(PARTITION BY id_group ORDER BY sequence_number DESC) rn
FROM
table_with_multiple_rows_per_row_in_t u
) x
ON
t.id = x.id_group AND x.rn = 1
【讨论】:
以上是关于从内部连接表中检索最新记录的主要内容,如果未能解决你的问题,请参考以下文章