mysql - 如何在 MySQL GROUP BY 中按 DATE 返回第一条记录?

标签 mysql sql

我在表中有 30 条记录,每条记录的标题相同但 ID 和日期不同。如何按日期返回最近的查询?

表格如下所示:

Id - Title - Date
-----------------
1 - africa - 2012-11-27
2 - africa - 2012-11-26
3 - africa - 2012-11-25

我需要一个返回 ID 为 3 的记录的查询,即按日期计算的最新记录。到目前为止,我尝试使用 GROUP BY 时只返回 ID 为 1 的记录。我该怎么做?

最佳答案

您想获取第一条记录,但那不是最近的。子查询背后的想法是,它获取每个标题的第一个日期,并在匹配标题和日期的情况下将其与自身连接起来。

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  title, MIN(DATE) minDate
            FROM tableName
            GROUP BY title
        ) b ON a.title = b.title AND
                a.date = b.maxDate

关于mysql - 如何在 MySQL GROUP BY 中按 DATE 返回第一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556557/

相关文章:

mysql - 内部加入最近的行

PHP 和 MySQL - 变量中存储的内容

PHP json foreach 仅返回最后一条记录

php - 有没有一种方法可以通过 PHP 删除注释而无需为其分配 ID?

mysql - 关于对比较的 SQL 查询的优化

mysql - sql - PostgreSQL 9.6 中的 GROUP_CONCAT

c# - 是否可以从标量函数的结果为 Id 分配默认值

java - 使用带有 IN 子句的 jooq 条件

java - SQLJ IN 语句支持

sql - 在 CTE 内部使用 COUNT() 比在 CTE 外部使用更昂贵?