1

オブジェクトには次のような値があります:-

 valA   valB
  1      1
  1      3
  1      4
  1      5
  2      3
  2      6
  3      7

valA の値の明確な数が m で、valB が n であるとしましょう。(m<

  Objects.each do|var|
      X.where("a = ? AND b = ?",var.valA,var.valB).first

これにより、valA と valB の値の組み合わせごとにクエリが実行されます。

1 つのクエリを起動して、すべてのレコードを取得して処理したいと考えています。どうすればいいですか?

PS: 最悪の場合、valA ごとに 1 つずつ、m 個のクエリを起動し、valB 値に IN クエリを使用できます。

編集:-現在、valA と valB (ここでは 7) の組み合わせごとに 1 つのクエリが実行され、(X の) 各オブジェクトが処理されます。X からすべてのオブジェクトを取得するために、(valA と valB の値のタプルまたはその他のメソッドを使用して) 単一のクエリのみを実行したいと考えています。

4

1 に答える 1

1
X.select("MIN(id)").group("valA, ValB")
于 2012-09-28T10:50:23.993 に答える