1

私は SQL の経験がほとんどなく、Rails にはまだ慣れていません。Rails 3 では、私の「レポート」モデルで、現在、次のような行でデータベースにクエリを実行しています。

MyRecord.where('org_id=?', self.org_id).order('vehicle_id')

このようなクエリは、次のようなレコードを生成します (明らかに、データを少し変更しました)。

151 Accord 214  115,386 Mule    n/a SammyExample
152 Accord 214  115,386 Mule    n/a SammyExample
140 Camry       55,555  Foghorn n/a SammyExample

その最初の列を「MyRecord_ID」としましょう。

ここで、MyRecord_ID 列を考慮せずに、重複を除外するクエリを実行できるようにしたいと考えています。つまり、上記の最初の 2 つのレコードは重複と見なされ、そのうちの 1 つが除外されます。どうすればいいですか?

また、補足として、MyRecord に ID (MyRecord.id 経由でアクセス可能) があるのに、schema.rb ファイルに MyRecord_ID 列がない理由がわかりません。

ありがとうございました。すべてのヘルプは大歓迎です。

4

2 に答える 2

0

多分このようなもの:

MyRecord.where('org_id=?', self.org_id).order('vehicle_id').group(:vehicle_id)

乗り物を選択している場合は、裏返したくなるかもしれません。

Vehicle.include(:my_record).where(...).
于 2013-03-28T23:35:01.953 に答える
0

結果セットに ID が必要ない場合は、select() を使用します。

MyRecord.select("distinct [cols you want]").where('org_id=?', self.org_id).order('vehicle_id')
于 2013-03-29T21:44:30.043 に答える