我想写出正确的查询来获取最讨厌的新闻。 当前查询:
@most_hated_news = News.joins(:likes).where('likes.like = ?', false).order('likes.like DESC').first
喜欢表的架构:
# Table name: likes
#
# id :integer not null, primary key
# like :boolean
# person_id :integer not null
# news_id :integer not null
我想获得新闻,大多数人都喜欢错误。 问题是,该查询并不关心使用false值排序喜欢并返回最喜欢的新闻。 它以3个正面(大多数)喜欢和1个负数返回新闻。我有数据库新闻2负(大多数)。 怎么写得正确?
答案 0 :(得分:1)
我会尝试这样的事情:
@most_hated_news = News.joins(:likes)
.where('likes.like = ?', false)
.group('news.id')
.order('COUNT(likes.id) DESC').first