2013-08-02 61 views
-2

我有兩個表名爲linesattribute_values。從我想要選擇的領域從linesname在下面的MySQL查詢給定的條件:在rails中加入兩個具有多個條件的表

select distinct a.name 
from lines a join attribute_values b 
where a.advertiser_id = 280 
    and a.id = b.line_id 
    and b.name in (11, 18) 
    and b.value != 0; 

我怎樣寫使用Ruby代碼此查詢?

+0

做ü有你的模型之間的任何關聯?如果是,那麼請給他們看。 –

+0

是的,有has_many關係 – Pez

+0

你寫了什麼代碼作爲嘗試解決方案? –

回答

0

假設 線的has_many ATTRIBUTE_VALUES

嘗試你必須申請uniq這個

Line.joins(:attribute_values).select("DISTINCT(lines.name)").where("lines.advertiser_id = ? AND attribute_values.name IN (?) AND attribute_values.value != ?", 280, [11,18], 0) 
0

爲了得到不同的值。

Lines.joins(:attribute_values).where('lines.advertiser_id = ? AND attribute_values.name in ? AND attribute_values.value <> ?', 280, [11, 18], 0).uniq 
+0

好像是這裏的拼寫錯誤 'lines.advertiser_id? '應該是'lines.advertiser_id =? ' 不是嗎? –

+0

謝謝sahil :) –

0
Line.joins("a LEFT JOIN attribute_values b ON a.id = b.line_id").select("DISTINCT(a.name)").where("b.value != ? AND b.name in (?) AND a.advertiser_id = ?", 0, [11, 18], 280) 
相關問題