0

我希望能够在执行 where 查询之前限制我的结果。我正在尝试做一个实验,我查看一个随机样本,比如 50 个响应,然后想计算回答是的用户数量。如果我这样做,response.limit(50).where(:chosen_answer => 'yes').count我会得到 50,因为它会限制整个查询。

有没有办法把它变成两个单独的查询?

4

1 回答 1

0

您可以将其作为单个查询执行,但可以使用嵌套查询:

# get 50
inner_query = response.select('id').limit(50).to_sql

# then filter within those 50
results = response.joins("INNER JOIN #{inner_query} x on x.id = responses.id").where(...).count
于 2013-03-18T23:09:14.420 回答