在子查询中,通过“hving 1”和order by 实现数据结果排序固化,然后再通过group by 得到的结果就是子查询中每个组排序第一的那一条数据
比如:从学生成绩表,取每个人最近一次考试的成绩(如果不用having 1 的话,就是先查询出每个人最近的考试时间,然后通过人和时间查询关联查询出成绩)
select * from (
select `名称`, `得分` from `学生成绩`
having 1
order by `名称`, `考试时间` desc
) b
group by b.`名称`
比如:从学生成绩表,取每个人最高成绩的考试时间
select * from (
select `名称`, `考试时间` from `学生成绩`
having 1
order by `名称`, `得分` desc
) b
group by b.`名称`