ruby-on-rails – 如何按相关记录的最大值对表进行排序?
发布时间:2020-12-17 03:31:14 所属栏目:百科 来源:网络整理
导读:我有一个客户模型,有很多会议. class Client ActiveRecord::Base has_many :meetingsendclass Meeting ActiveRecord::Base belongs_to :clientend 我想生成一个ActiveRecord查询,它将返回按最近一次会议的顺序排序的客户端(由meeting_time列确定),但不知道如
我有一个客户模型,有很多会议.
class Client < ActiveRecord::Base has_many :meetings end class Meeting < ActiveRecord::Base belongs_to :client end 我想生成一个ActiveRecord查询,它将返回按最近一次会议的顺序排序的客户端(由meeting_time列确定),但不知道如何执行此操作.我显然需要以某种方式加入表格,但我不知道如何在AR中生成合适的子查询.如何为每个客户编写仅包含1个会议的联接,特别是最近的会议(即给定meetings.client_id的meetings.meeting_time的最高值).我的数据库是PostgreSQL. 我之前遇到过类似的问题,与他们挣扎,显然没有从这个过程中学到很多东西.还可以理解指向良好资源的指针以了解这些情况. 解决方法
像这样的东西?
Client.joins(:meetings).group('clients.id').order('max(meetings.meeting_time) DESC') 这将: >抓住客户>加入他们的会议>客户分组(id)>现在我们可以使用max(meetings.meeting_time),这是每个客户的最新会议>然后按最近的会议时间按降序对客户进行排序 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |