有一组电池(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"
第一种方法,出现了全表检索,速度非常慢。
第二种方法性能很好。
不知道各位网友是否有更好的查询方式。
本文讨论了两种不同的SQL查询方法来获取最新的所有电池数据,并对比了它们的性能差异。第一种方法使用子查询进行全表扫描,效率较低;第二种方法通过连接表避免了全表扫描,提升了查询性能。
461

被折叠的 条评论
为什么被折叠?



