我有两个模型School
和Expense
,其中学校有很多费用,Expense
有一个名为cost
的属性
我试图仅提取费用高于某个值的学校,让我们说1000,我试过这个查询
School.includes(:expenses).where("lower(schools.name) LIKE '%a%' and expenses.cost >= 1000").select('*').from('schools, expenses')
这个查询的问题是如果学校有多个成本大于1000的费用,它会返回重复值,我想要的只是基于条件的独特学校。
请帮忙!
答案 0 :(得分:1)
School.
joins(:expenses).
where("lower(schools.name) LIKE ?", "%a%"). # part of the code you shared
where("expenses.cost > ?", 1_000).
group("schools.id")