0

私は Rails の初心者で、SQL 型言語の経験はほとんどありません。

Rails 3 プロジェクトに取り組んでおり、製品のテスト バージョンとプロジェクト マネージャーの製品バージョンが 2 つの異なるデータベース システムを使用しています (私は MySQL を使用していますが、彼が何を使用しているかはわかりません)。

ここに、両方のデータベースで作業したい一般的な SQL ステートメントがあります。ActiveRecord 機能だけでこれを行う方法はありますか?

SELECT * FROM MyRecords 
WHERE  (f1, f2, f3, f4) IN (
    SELECT f1, f2, f3, f4
    FROM   MyRecords
    GROUP  BY f1, f2, f3, f4
    HAVING count(*) = 1 
);

言い換えれば、私は「WHERE IN」ステートメントを実行しようとしています (率直に言って、私は WHERE IN ステートメントが何をするのかさえ知りません。ただ、この答えが私が必要としているものを実行するということだけです。 ) 複数の列で SELECT DISTINCT? ) より具体的に言うと、上記のクエリを実行できるように、次の ActiveRecord 関数を拡張する必要があります。

  def MyRecordFunction
    MyRecords.where('org_id=?', self.org_id).order('f4')
  end

ありがとうございました。

4

1 に答える 1

0

ActiveRecord ガイドをご覧ください http://guides.rubyonrails.org/active_record_querying.html#specifying-conditions-on-the-joined-tables

結合などの条件の指定に関する情報がいくつかあります。

互換性が必要な他のDBを共有していないため、より具体的にはできません。

于 2013-03-29T15:39:49.437 に答える