我有一个查询:
campaignData = Event
.where(campaign_id: Campaign.where(customer_id: params[:customer_id]))
.where('scheduled >= CURDATE() - INTERVAL 7 DAY')
.limit('30')
我用它来显示 html 上的数据。现在我使用了一些过滤器,它应该从前 30 个数据中过滤数据。因为我使用 limit(30) 数据超过一百万。
筛选:
if !params[:channel].blank?
campaignData = campaignData.where(channel: params[:channel])
end
if !params[:offerType].blank?
campaignData = campaignData.where(offerType: params[:offerType])
end
它给了我另一组我不需要的 30 个结果。它应该从之前的 30 个数据集中过滤。
不能使用循环,因为
我在用
campaignData = campaignData.where(audienceQuery)
其中 AudienceQuery 是来自前端的查询传递,使用QueryBuilder
. 哪个是最重要的。
提前致谢。
我们可以使用内连接,运行另一个查询然后与它合并。尝试了许多方法,但无法从数据集中过滤数据。