mySQL group by 默认取分组结果的第一条记录 sql
验证过程: code
下个SQL 的主要目的是获取每一个项目的最近的一个里程碑记录 class
SELECT milestone.id ,milestone.projId,milestone.validTime FROM (SELECT * FROM proj_milestone WHERE STATUS =0 ORDER BY validTime ASC) AS milestone GROUP BY milestone.projId
对应结果: im
其中: 如何保证group by 获取的就是这个项目下全部里程碑的第一条呢 数据
进行反向验证: 项目
1 获取这个项目的全部里程碑记录并按照validTime升序排列 img
SELECT * FROM proj_milestone WHERE projId = '000' AND STATUS = 0 ORDER BY validTime ASC
结果: 时间
证实group by 拿到的是分组结果的第一条数据与id大小无关 co
若是validTime,projId,都相同,即知足条件的里程碑记录有多条
分组结果会自动按照id升序获取第一条,以下: