Rails在where子句中运行AND查询



目前我有以下查询

Policy.joins(policy_coverages: :cpt_code).where(policy_coverages: { cpt_codes: { code: code_array } })

这个查询返回的是包含数组中cpt_codes之一的所有策略。它正在执行OR查询。

我如何编写一个查询,只返回具有policy_coverages和数组code_array中所有cpt_codes的策略

分组记录和使用必须为每个组(每个策略)设置条件:

Policy.group(:id)
.joins(policy_coverages: :cpt_code)
.where(policy_coverages: { cpt_codes: { code: code_array } })
.having(CptCode.arel_table[Arel.star].count.gteq(code_array.length))

使用.eq而不是.gteq,如果你想匹配记录只与这些策略代码,而不是其他。

相关内容

  • 没有找到相关文章

最新更新