【发布时间】:2011-01-16 19:50:47
【问题描述】:
我有一个博客。在我的索引页面上,我拉入所有博客文章。对于每篇博文,我都会计算那篇博文中的 cmets 数量。这会导致 N+1 问题。我的查询如下所示:
SELECT "blog_posts".* FROM "blog_posts" WHERE ("blog_posts"."published" = 't') ORDER BY published_at DESC
SELECT "users".* FROM "users" WHERE ("users"."id" IN (1, 2, 3))
SELECT COUNT(*) FROM "blog_comments" WHERE ("blog_comments".blog_post_id = 10)
SELECT COUNT(*) FROM "blog_comments" WHERE ("blog_comments".blog_post_id = 9)
SELECT COUNT(*) FROM "blog_comments" WHERE ("blog_comments".blog_post_id = 8)
SELECT COUNT(*) FROM "blog_comments" WHERE ("blog_comments".blog_post_id = 2)
SELECT COUNT(*) FROM "blog_comments" WHERE ("blog_comments".blog_post_id = 7)
Rails 中有没有一种方法可以像包含用户一样包含 COUNT(SQL 第 2 行)?
【问题讨论】:
标签: sql ruby-on-rails ruby