【发布时间】:2014-08-25 07:37:16
【问题描述】:
我想通过自定义选择和连接来解决我的 N+1 计数问题。 我的帖子和标签之间存在多对多关系。标签可以确认或取消确认。 我想在我的帖子选择语句中包含字段 tags_confirmed_count 和 tags_unconfirmed_count(这样我以后可以避免为每个问题计算标签)。
我已通过以下查询为帖子执行计数标签:
Post.joins(:tags).select("posts.*, COUNT(tags.id) AS tags_count").group("posts.id")
现在我找不到一个解决方案来计算标签的数量,对于已确认字段设置为 true 和一次为 false 的标签。
我是这样试的,但我这样只能算已确认的,不能算未确认的:
Post.joins(:tags).select("posts.*, COUNT(tags.id) AS tags_confirmed_count").group("posts.id").where("tags.confirmed = true")
【问题讨论】:
-
您可以从所有子结构中确认并获得未确认。
标签: mysql sql ruby-on-rails postgresql ruby-on-rails-4