【问题标题】:Limit and offset in Active Record joinsActive Record 连接中的限制和偏移
【发布时间】:2012-02-07 19:04:22
【问题描述】:

我想对以下 Active Record 查询应用限制和偏移量:

results = ForumThread.joins(:posts).where(:posts => {:some_integer => 123})

注意 ForumThread :has_many 模型中的帖子关联。

我尝试在 where 子句中包含 @options 哈希。我尝试将.limit(5) 附加到查询的末尾。然而,这些都不起作用。阅读Active Record Query Interface guide 也无济于事。 如何对查询应用限制和偏移量?

如果替代查找器方法更合适,我愿意修改查询。

【问题讨论】:

  • 正在生成和执行什么查询,如log/development.log所示?
  • SELECT COUNT(*) FROM "forums_threads" INNER JOIN "posts" ON "posts"."forum_thread_id" = "forum_threads"."id" WHERE "posts"."some_integer" = '123'。这没有在任何地方添加限制。
  • 附加limit(5) 条件后会得到什么查询?还有你在后端使用什么 RDBMS?
  • LIMIT 5 附加到末尾的相同查询。我对results.count 远大于传递给limit 的值感到困惑。

标签: ruby-on-rails activerecord limit offset


【解决方案1】:

查询包含COUNT(*),因为我后来调用了results.count。显然SELECT COUNT(*) 忽略了限制子句,因此将LIMIT(5) 附加到查询中没有效果。

【讨论】:

  • @tadman 确实如此。但是,自从我回答自己的问题以来,有一个时间延迟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 2019-06-05
相关资源
最近更新 更多