原理還是沒有搞清楚,在官網上看了一下,看的不是很清楚。一並都記錄一下。
問題描述:
存在如下數據結構
sql:
求用戶最近更新的那條記錄
思路:
按照modify_time排序后按照user_id分組。
sql如下:
SELECT * FROM ( SELECT id, doc_ass_modify_time, user_id FROM health_report_assessment hra ORDER BY doc_ass_modify_time DESC ) reportTemp GROUP BY req_user_id
改sql在 mysql5.5.39 查詢結果為:
修改后的sql
SELECT
*
FROM
(
SELECT
DISTINCT id,
doc_ass_modify_time,
user_id
FROM
health_report_assessment hra
ORDER BY
doc_ass_modify_time DESC
) reportTemp
GROUP BY
req_user_id
子查詢中增加了distinct的關鍵字。
在兩個版本中,查詢均取到最新的數據。
在官網查到的資料
大體了解他的意思,但也沒有看出來和group by 有多大的關系。
http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
先記錄一下,歡迎拍磚。