在Rails的ActiveRecord中,我该如何忽略选择只有一列有差别的“重复”记录?

我有很少的SQL经验,我对Rails还很陌生。在Rails 3,在我的“报告”的模式,我目前查询数据库这样一行:在Rails的ActiveRecord中,我该如何忽略选择只有一列有差别的“重复”记录?

喜欢这些

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列。换句话说,上面的两条记录会被认为是重复的,其中一条会被忽略。我将如何做到这一点?另外,作为一个附注,我不明白为什么MyRecord的ID(可通过MyRecord.id访问),但是schema.rb文件中没有MyRecord_ID列。

谢谢。所有的帮助非常感谢。

回答:

也许是这样的:

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

如果您选择汽车,你可能想甩掉它。

Vehicle.include(:my_record).where(...). 

回答:

如果您不需要在结果集中的ID,使用select()

MyRecord.select("distinct [cols you want]").where('org_id=?', self.org_id).order('vehicle_id') 

以上是 在Rails的ActiveRecord中,我该如何忽略选择只有一列有差别的“重复”记录? 的全部内容, 来源链接: utcz.com/qa/258009.html

回到顶部