0
我有兩個型號School
和Expense
,其中學校有很多費用,Expense
條件從表中獲取記錄有一個名爲屬性cost
基於在關聯表
我想只獲取與他們的費用的學校大於一定值花費更大,比方說1000,我想這個查詢
School.includes(:expenses).where("lower(schools.name) LIKE '%a%' and expenses.cost >= 1000").select('*').from('schools, expenses')
與此查詢的問題是它返回重複的值,如果一所學校有多個支出成本大於1000,我要的是唯一的獨特基於條件的學校。
請幫忙!
如果每個學校都沒有費用該怎麼辦? – RSB 2015-03-14 08:29:00
由於這是一個內部連接,這些學校將被忽略。在我們的情況下,這是絕對沒有問題的,因爲我們只希望學校的費用高於一定的價值。如果你仍然希望在查詢過濾之前包含這些學校(無論出於何種原因),可以使用如下所示的外部連接:'School.join(「LEFT OUTER JOIN費用ON費用.school_id= schools.id」)。 where(conditions).group(「schools.id」)' – Humza 2015-03-14 08:54:32
感謝您的幫助! – RSB 2015-03-14 09:03:01