Ruby on rails 即使计数结果为0,也将查询计数(DISTINCT“reviews”quot;id)呈现为我的U计数

Ruby on rails 即使计数结果为0,也将查询计数(DISTINCT“reviews”quot;id)呈现为我的U计数,ruby-on-rails,ruby,ruby-on-rails-3,controller,rails-postgresql,Ruby On Rails,Ruby,Ruby On Rails 3,Controller,Rails Postgresql,在下面的查询中,rails统计出版物中有多少评论和评论,并按描述顺序排列结果 例如: 出版物一:2篇评论+10篇评论=12(我的数量) 出版物二:2篇评论+5篇评论=7(我的数量) 在上述情况下,查询可以按预期查找和呈现发布,但前提是: 出版物三:0评论+5条评论=5(我的数量) 在这种情况下,查询不会呈现发布3,因为审阅值为0。即使一个或两个值都为0,如何使其渲染?所以,基本上我希望以DESC顺序呈现所有记录,无论值是否为0 谢谢你的指导 @publication = Publication.

在下面的查询中,rails统计出版物中有多少评论和评论,并按描述顺序排列结果

例如:

出版物一:2篇评论+10篇评论=12(我的数量)

出版物二:2篇评论+5篇评论=7(我的数量)

在上述情况下,查询可以按预期查找和呈现发布,但前提是:

出版物三:0评论+5条评论=5(我的数量)

在这种情况下,查询不会呈现发布3,因为审阅值为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")

您需要将评论和可能的出版物与评论表进行左连接。请试试这个:

@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")