2012-01-21 19 views
-1

私はテーブルの上でクエリをやってる:2つのクエリをマージするにはどうすればよいですか?

@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

本当に質問には関係ありませんが、回答はAnswearですか? –

答えて

0

使用IN (?):あなたは、単にそれらをチェーンでき

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

それは動作しませんBaldrick –

1

。あなたが考慮する必要があります

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

2つのノート:あなたは二回クエリでこの方法をGROUP_IDいる

  1. @group.idwhereメソッドに渡すグループIDの配列にないことを確認するほうが理にかなっています。
  2. アンサーは言葉ではありません。あなたはおそらくあなたのモデルに名前をつけるべきです。
関連する問題