今天敲sql的时候遇到了一个问题,业务流程是
检查记录->整改通知->整改回复->检查组复查
如果复查不通过 则 检查组复查->整改通知->整改回复->检查组复查
此时一条检查记录就可能对应多条整改通知去最新数据就用到了分组
简化一下模型 要显示最新时刻的物品价格goods(其实不太一样我的情况主键相当于这里的time)
编号num | 价格price | 时间 time |
---|---|---|
1 | 5 | 1 |
1 | 6 | 2 |
2 | 10 | 3 |
2 | 8 | 4 |
查询结果应该为
编号num | 价格price | 时间 time |
---|---|---|
1 | 6 | 2 |
2 | 8 | 4 |
想了半天这个查询都得查两次
实现方式1
select * from goods right join
(select max(time) maxtime from goods group by num) c on goods.time=c.maxtime
实现方式2(如果time是唯一的话)