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升序獲取第一條,以下: