0

在下面的查询中,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")
4

1 回答 1

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")
于 2013-10-31T14:41:18.460 回答