选择按字段分组的MySQL上的最新记录

选择按字段分组的MySQL上的最新记录,mysql,sql,Mysql,Sql,上面的查询返回多个记录具有相同TID的记录。现在我需要选择最晚的日期 上面的查询返回TDate,但它不是最近的一个,基本上我需要按TID分组,并获取那些TDate是最近的记录。我只需要在多个记录具有相同的TID的情况下获取这些记录 注意:不能使用MAX(TDate),因为它没有选择正确的另一个字段假设TDate是数据类型date或datetime,那么MAX(TDate)将为每个分组的TID提供最新日期: SELECT AnotherID, TID, TDate, COUNT(*) AS Tot

上面的查询返回多个记录具有相同TID的记录。现在我需要选择最晚的日期

上面的查询返回TDate,但它不是最近的一个,基本上我需要按TID分组,并获取那些TDate是最近的记录。我只需要在多个记录具有相同的TID的情况下获取这些记录


注意:不能使用MAX(TDate),因为它没有选择正确的另一个字段

假设
TDate
是数据类型
date
datetime
,那么
MAX(TDate)
将为每个分组的
TID
提供最新日期:

SELECT AnotherID, TID, TDate, COUNT(*) AS Total
FROM MyTable
GROUP BY TID
HAVING Total > 1

请参阅更新的问题请阅读关于如何在没有MySQL扩展的情况下使用
GROUP BY
的文档这类工作,但对于那些具有相同TDate和TID的记录,则显示为重复记录。我需要一个TID和一个最新的,不能有2个TIDs@GGio-尝试添加
DISTINCT
选择DISTINCT否不起作用,我为外部查询添加了GROUPBY t1.TID,似乎起作用了。
SELECT t1.AnotherId, t1.TID, t2.MaxTDate, t2.Total
FROM MyTable AS t1
INNER JOIN
(
   SELECT TID, MAX(TDate) AS MaxTDate, COUNT(*) AS Total
   FROM MyTable 
   GROUP BY TID
   HAVING Total > 1
) AS t2  ON t1.TID   = t2.TID
        AND t1.TDate = t2.MaxTDate;