方法: mysql取分组后最新的一条记录, 先筛选 出最大和最新的时间,在连表查询 就是最新的一条数据了 SELECT t.id, t.card_id, t.name, t.create_time FROM t_user t LEFT JOIN ( SELECT card_id, max( create_time ) AS create_time FROM t_user GROUP BY card_id ) t2 ON t.card_id= t2.card_id WHERE t.create_time = t2.create_time