如何合并两个查询?

时间:2012-01-21 13:33:13

标签: ruby-on-rails ruby

我正在对桌子进行查询:

@answears = Answear.where("round_id = ? AND group_id <> ? AND value <> 'HIGHNOON'", @round.id, @group.id

有效,返回我想要的东西。但在其他地方,还有另一个问题:

@answears = Answear.where(:group_id => [1, 3, 5]) 

哪些也有效。

如何将这两者合并为一个?

2 个答案:

答案 0 :(得分:1)

你可以直接链接它们。

Answear.where("round_id = ? AND group_id <> ? AND value <> 'HIGHNOON'", @round.id, @group.id).where(:group_id => [1, 3, 5])

您可能需要考虑的两个注意事项:

  1. 您的查询中有两次这样的group_id。确保@group.id不在您传递给where方法的组ID数组中会更有意义。
  2. Answear不是一个字。您应该将您的模型命名为Answer。

答案 1 :(得分:0)

IN (?)与数组值一起使用:

@answears = Answear.where("round_id = ? AND group_id IN (?) AND value <> 'HIGHNOON'", @round.id, [1, 3, 5])