【问题标题】:MySQL only bring back latest recordMySQL 只带回最新记录
【发布时间】:2017-11-24 11:49:21
【问题描述】:

我有一个表,其中存储了一些字段为 id、名称、日期和版本的行。我可以有两行具有相同的name 但版本不同,因此一个文件可以有多个版本。

我的查询:

 SELECT id, name, date, version FROM my_table AS a

示例输出(每个新行是另一行):

1 | abc.xls | 1488363249 | 1
2 | example.xls | 1488363232 | 1
3 | thirdfile.xls | 1488362312 | 1
4 | thirdfile.xls | 1488363249 | 2

我想做的只是带回以下内容:

1 | abc.xls | 1488363249 | 1
2 | example.xls | 1488363232 | 1
4 | thirdfile.xls | 1488363249 | 2

发生的事情是它注意到 id 3 和 4 是相同的文件名,它只带回了版本 2,因为它是该文件名的最新版本

如何在单个查询中实现这一点。

【问题讨论】:

    标签: mysql group-by max sql-order-by


    【解决方案1】:

    这样的东西应该可以工作

    SELECT t.id, t.name, t.date, t.version
    FROM my_table t
    JOIN (SELECT max(version) max_version, name FROM my_table GROUP BY name) t1
      ON t.version= t1.max_version AND t.name= t1.name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      相关资源
      最近更新 更多