首页 >数据库 >mysql教程 >MySQL 分组后取时间最新记录

MySQL 分组后取时间最新记录

大家讲道理
大家讲道理原创
2017-05-28 11:18:402297浏览

如题,我在网上也找过相关解决方法,很多解答都是这么一句SQL语句:
select Id,AccountId,Mark,max(CreateTime) as Latest from AccountMark as b group by AccountId 

使用Max函数。但是在我查出来的数据中似乎有些不对,如图,反白的那一条数据,Mark字段和CreateTime字段根本不对应啊!



这是怎么回事?使用Max函数后在分组这样靠谱吗?

还有一条语句:select *,COUNT(AccountId) as Num from 
(select * from AccountMark order by CreateTime desc) `temp`  
group by AccountId order by CreateTime desc 
这样查出来的数据是对的


但是,我需要创建视图Mysql中视图里不允许出现查询子句。求大神些一条SQL语句,能实现既不出现子句,又能查出正确数据。谢谢!

 

解决方法

select * from AccountMark as b where not exists(select 1 from AccountMark where AccountId= b.AccountId
and b.CreateTime

 

以上是MySQL 分组后取时间最新记录的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn