Mysql 分組取最新一條

2022-03-26 12:53:24 字數 1125 閱讀 1540

我有如下這張表的資料,需要根據mobile**號碼分組,每條**取最新的資料

方案1: select * from (select * from model_online_forecastscore_phone0001 order by id desc) as cn group by cn.mobile

方案2:(最佳方案): 

select m1.*

from model_online_forecastscore_phone m1 left join model_online_forecastscore_phone m2

on (m1.mobile = m2.mobile and m1.id < m2.id) where m2.id is null;

可以看到通過explain 看執行效率非常高,這個通過left join的知識點可以參考

1.不加 m1.id < m2.id 和where子句

2..不加where條件檢視結果

通過左連線將mobile*mobile結果累積.

關鍵在於左連線會以左表作為基準,如果右表沒有符合條件的會以null補充。

參考:

mysql 分組取最新一條

mysql 分組取最新一條 select from select from usr warn info handle order by handle time desc limit 10 t group by warn info idusr warn info handle 表名 handle ti...

sql 取最新一條記錄

1.選出某個條件最新的一條記錄 選出最新狀態下的每乙個單號對應的子單資料 select distinct a.receiving code,a.product barcode,a.rd putaway qty from odoo ykd oversea shipping information a ...

mysql 分組查詢每組的最新一條資料

1.原始資料 學生成績表 2.想要獲取每個考生最新的考試成績,網上的例子 select a.from select from scoreinfo order by scoreinfo.createtime desc as a group by a.snum order by a.createtime...