有一组电池(Battery),每个电池都会不断的更新检测数据(BatteryData),现在要获得最新的所有的电池数据。
也就是每个电池数据的id最大的那个。
方法1:
select * from BatteryData where id in (select max(id) from batterydata where batteryGroupId=?1 group by batteryId )order by batteryId
方法2:
select bd.* from BatteryData bd,(select max(id) id from batterydata where batteryGroupId=?1 group by batteryId ) bd2 where bd2.id=bd.id order by batteryId"
第一种方法,出现了全表检索,速度非常慢。
第二种方法性能很好。
不知道各位网友是否有更好的查询方式。