我有两个名为lines
和attribute_values
的表。从那里我想从name
表中选择字段lines
,其条件在下面的MySQL查询中给出:
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 attribute_values
试试这个
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)
答案 1 :(得分:0)
要获得不同的价值,您必须应用uniq
。
Lines.joins(:attribute_values).where('lines.advertiser_id = ? AND attribute_values.name in ? AND attribute_values.value <> ?', 280, [11, 18], 0).uniq
答案 2 :(得分: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)