从内部连接表中检索最新记录

Posted

技术标签:

【中文标题】从内部连接表中检索最新记录【英文标题】:Retrieve newest record from inner join table 【发布时间】:2021-10-27 16:49:40 【问题描述】:

目前使用内部连接来拉取交易记录。这导致连接的左侧返回每个右侧表值的值。 *如果没有内连接,则从左侧表返回单个记录。 使用内连接右侧表,将为每个右侧记录返回一条左侧记录。

你知道如何从正确的表中区分“最新”记录吗?是否有任何时间戳列、ID 或类似的东西?

是的,有一个序列号。

理想的解决方案是只返回一个左行,以及右表中的最新记录。

【问题讨论】:

你知道如何区分表中的“最新”记录吗?是否有任何时间戳列、ID 或类似的东西?因为,如果没有,你就不能做你想做的事。 是的,那个表里有序号 包含一个可重现的测试用例总是有帮助的。创建两个表的 DDL,插入一些数据的 DML,以及在这种情况下的预期结果。 这不是INNEROUTER 问题的加入类型,而更多的是“我如何只加入最新记录”类型的问题。如果您对以下答案不满意,请提供示例数据和所需结果。 【参考方案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

【讨论】:

以上是关于从内部连接表中检索最新记录的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何从每个连接表中检索最新结果

通过内连接从不同的表中检索值

从多个表中识别最新记录并将它们全部连接在一起

CakePHP:如何使用内部联接从两个表中检索数据?

MS Access 2007 中的 SQL 内部连接

Sql 查询内部连接表中的不同记录