需求说明
例如有这样一张表,存的是学生测验成绩,测验记录可以有多条,我们需要筛选出每个学生最近一次的测验记录
mysql> desc t_student_test; +--------------+--------------+------+-----+---------+-------------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------------------+ | id | varchar(36) | NO | PRI | NULL | | | create_date | datetime | YES | | NULL | | | update_date | datetime | YES | | NULL | | | no | varchar(64) | YES | | NULL | | | name | varchar(255) | YES | | NULL | | | score | int | YES | | NULL | | | remark | varchar(512) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------------------+ 7 rows in set (0.00 sec)
根据create_date最大的,select出记录
可以先使用group,将no(学号) create_date(测验时间)分组
SELECT * FROM t_student_test WHERE ( no, create_date ) IN ( SELECT no, MAX( create_date ) FROM t_student_test GROUP BY no)
文章评论