我的范围如下:

scope :billable, -> (range_start = nil, range_end = nil) {
    joins(:bids)
      .where("auctions.complete = 1 AND auctions.starts_at >= ? AND auctions.starts_at <= ? AND auctions.listing = 0", range_start, range_end)
      .group("auctions.id")
  }


我正在尝试确定如何向where子句添加约束,以允许我选择where count(bids)> auctions.items_count

最佳答案

http://guides.rubyonrails.org/active_record_querying.html#having

在SQL中要记住的一点:


WHERE子句用于单个行中的条件,然后由GROUP BY将它们分组。
HAVING子句适用于组上的条件。


您需要确定要在结果中包括哪些组,因为您的条件使用了聚合函数count()。因此它属于HAVING子句。

关于mysql - 获取行取决于内部连接 rails 范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47839821/

10-10 06:42