我的数据库有一个设备阅读列表,
列是 id ,device_id ,device_reading ,update_time
如何为每个设备选择所有最新阅读?
也就是说,我需要先按照update_time对数据进行排序
然后我需要使用一些独特的方法(唯一的 device_id)来过滤数据库
然后我可以从刚刚过滤的行中检索 device_reading。
也就是说,从b不同的表中取出a列
我怎样才能做到这一点?在 ruby on rails 中
提前致谢
假设型号名称是DeviceReading
DeviceReading.distinct(:device_id).order('update_time DESC').pluck(:device_reading)
如果你想按升序排序,你可以使用 ASC
代替 DESC
来源:Distinct and pluck sort/order
编辑: distinct 仅在 rails 4 中有效,因此如果您使用的是 rails 3,您应该这样做:
DeviceReading.select(:device_id).uniq.pluck(:device_reading)
但是 当我在上面链接 .order('update_time DESC')
时,我得到了神秘的错误。我正在努力寻找解决方案。同时我希望这对你有帮助。
来源:distinct undefined error
我是一名优秀的程序员,十分优秀!