http://www.trailerpuppy.com/trailers/popular
预告片属于电影。电影has_many预告片和has_many通知。我想从通知最多的电影中返回最新的预告片
trailer.rb
def self.most_reminders_set(from_date, until_date, number_to_return)
Trailer.joins(:movie => :notifications).
where("movies.release_date > ?", from_date).
where("movies.release_date < ?", until_date).
select('trailers.*, COUNT(notifications.id) AS notifications_count').
joins(:movie).group('trailers.id').
order('notifications_count DESC').take(number_to_return).first(number_to_return)
end
所以基本上这个方法允许我设置一个时间帧然后它将返回前X个预告片(电影通知最多的那些)。
这个问题是我正在为同一部电影获得多个预告片。我只想为每个独特的movie_id返回一个预告片。
不确定在我的查询中将其添加到何处。
答案 0 :(得分:0)
您需要子查询才能获得最新预告片。此外,我注意到您使用joins
两次movies
,而您不需要这样做。以下是与您的问题相关的好文章的链接:
http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/