我有一个简单的数据库表如下:
在这里我需要提取featureId,name和最新的createdTime(即max)
我尝试过类似的事情:
select distinct featureId,
name,
max(createdTime) as createdTime
from feature
group by featureId;
但它返回了错误的结果:
我需要包含max createdTime的名称的结果。
1234 Test3 3
1235 Test5 5
1236 Test7 7
我错过了什么吗?
答案 0 :(得分:1)
似乎你的谷歌搜索结果并不好。让我们再做一次。
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
答案 1 :(得分:0)
我尝试过类似的事情:
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
答案 2 :(得分:0)
从查询中删除GROUP By或Distinct,您应该只在Mysql Select查询中使用一个,不同或分组。