- 初始方案一,先排序再分組
這是網上找的解決方案,先排序好,再進行分組,但是結果卻不可行。經實踐測試發現,子查詢是排序了,但是進行 inner join 再 group by,handle_time 還是取的分組裡的最小值。select id,name,handle_time from A inner join (select id,handle_time from B order by handle_time desc) tmp on A.id=tmp.id group by id
- 方案二,取最大時間值進行分組
測試證明這個方案是可行的,通過網上找資料發現 mysql5.7 之前方案一是可行的,到 mysql5.7 後只能使用方案二了。select id,name,handle_time from A inner join (select id,max(handle_time) as handle_time from B group by id) tmp on A.id=tmp.id order by handle_time desc
試問有更好的方案嗎?
本作品採用《CC 協議》,轉載必須註明作者和本文連結