Sql 根据关联的记录计数选择记录
我有三种型号:Sql 根据关联的记录计数选择记录,sql,ruby-on-rails,ruby-on-rails-3,postgresql,rails-activerecord,Sql,Ruby On Rails,Ruby On Rails 3,Postgresql,Rails Activerecord,我有三种型号: class Picture < ActiveRecord::Base # fields: url has_one :visit end class Visit < ActiveRecord::Base # fields: total_visits belongs_to :picture end class VisitDetail < ActiveRecord::Base #fields: ip_address has_many :v
class Picture < ActiveRecord::Base
# fields: url
has_one :visit
end
class Visit < ActiveRecord::Base
# fields: total_visits
belongs_to :picture
end
class VisitDetail < ActiveRecord::Base
#fields: ip_address
has_many :visits
end
我的问题是,有没有更有效的方法?是否有一些查询我可以写,将不会详尽的数据库 您可以在表之间使用
联接
,并通过visit\u details
表上的created\u at
字段有条件地进行选择。然后获取查询返回的数组的大小:
Picture.joins(:visit => :visit_details).where('visit_details.created_at > ?', some_date)
我如何按从观看次数最多到最少的降序排列图片?是的,基于每张图片的访问次数。
Picture.joins(:visit => :visit_details).where('visit_details.created_at > ?', some_date)