Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在表中有 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
你想要分组最大值:
SELECT * FROM my_table NATURAL JOIN ( SELECT Title, MAX(Date) Date FROM my_table GROUP BY Title ) t
在sqlfiddle上查看。
如果你用最高的而不是最新的来定义“最近的” :idDate
id
Date
SELECT * FROM my_table NATURAL JOIN ( SELECT Title, MAX(id) id FROM my_table GROUP BY Title ) t