2013-08-02 46 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) 
相关问题