在下面的查询中,rails会计算已发布的评论和评论的数量,并按DESC顺序排序。
例如:
出版物一:2评论+10评论= 12(my_count)
出版物二:2评论+5评论= 7(my_count)
如果上述查询可以按预期查找和呈现发布,但是如果:
出版物三: 0 评论+5条评论= 5条(my_count)
在这种情况下,查询不会渲染发布三,因为复审值为0.即使一个或两个值为0,我怎么能使它渲染?所以,基本上我想要以DESC顺序渲染所有记录,无论值是否为0。
感谢您的指导!
@publication = Publication.joins(:reviews, :publication_comments)
.select('"publications".*, count(DISTINCT "reviews".id) + count(DISTINCT "publication_comments".id) as my_count')
.group('"publications".id')
.order("my_count DESC")
答案 0 :(得分:1)
您需要与评论以及publications_comments表进行左联接。请试试这个:
@publication = Publication.includes(:reviews, :publication_comments)
.select('"publications".*, count(DISTINCT "reviews".id) + count(DISTINCT "publication_comments".id) as my_count')
.group('"publications".id')
.order("my_count DESC")