Mysql 如何在sql中获取最新的不同行?

Mysql 如何在sql中获取最新的不同行?,mysql,sql,Mysql,Sql,我有一个简单的数据库表,如下所示: 在这里,我需要提取featureId、name和最新的createdTime(即max) 我试过这样的方法: select distinct featureId, name, max(createdTime) as createdTime from feature group by featureId; 但它返回了错误的结果: 我需要一个包含名称的最大createdTime结果

我有一个简单的数据库表,如下所示:

在这里,我需要提取featureId、name和最新的createdTime(即max)


我试过这样的方法:

    select distinct featureId, 
           name, 
           max(createdTime) as createdTime 
      from feature 
  group by featureId;
但它返回了错误的结果:

我需要一个包含名称的最大createdTime结果

1234    Test3    3
1235    Test5    5
1236    Test7    7

我错过了什么吗?

我试过以下方法:

SELECT 
      featureId, name, createdTime
FROM  feature 
where createdTime
IN    (SELECT max(createdTime) from feature group by featureId) ;
达到了我的预期效果

1234    Test3    3
1235    Test5    5
1236    Test7    7

看来你的谷歌搜索结果不好。让我们再来一次

     select 
          a.featureId,
          a.name,
          a.createTime
     from feature a
     where exists(
     select 1 from 
          (select featureId,max(createTime)as createTime from feature group by featureId)b
              where b.featureId = a.featureID and b.createTime = a.createTime  
     )
或者你可以使用内部连接

     select 
          a.featureId,
          a.name,
          a.createTime
     from feature a
     inner join 
     (select featureId,max(createTime)as createTime from feature group by featureId)b
     on a.featureId = b.featureId and a.createTime = b.createTime

从您的查询中删除分组依据或分组依据,您应该在Mysql Select查询中只使用一个,即Distinct或GROUP By。

请在评论中提及为什么要进行向下投票?不要在同一个Select中使用Distinct和GROUP By,不要使用它。。。第二件事是为了解决您的问题,请在上面查找行\ u count()(按“列”划分,按“列”排序作为你的内部选择,你会在之后找到答案,第三次也是最后一次,否决投票的原因可能是同一个问题被问了数千次,通过谷歌搜索你会找到答案it@Veljko89谢谢你的迅速帮助。在你的帮助下,我已经取得了成功ted结果:)不,在这种情况下,你可能会得到正确的结果,但是如果1234得到的最大创建时间是3,而1235得到的最大创建时间是3,4,5,它的最大值是5。你像这样使用会得到1235 4作为输出