我想在预先形成where查询之前能够限制我的结果。我正在尝试做一个实验,我会查看50个响应的随机样本,然后想要计算回答是的用户数。如果我response.limit(50).where(:chosen_answer => 'yes').count
我得到50,因为它预先形成了对整个查询的限制。
有没有办法将它分成两个单独的查询?
答案 0 :(得分: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