我几乎没有SQL经验,而且我对Rails还很陌生。在Rails3中,在我的“报表”模型中,我目前正在查询一个数据库,其中有这样一行:
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列。
谢谢。非常感谢所有的帮助。
发布于 2013-03-28 23:35:02
可能是这样的:
MyRecord.where('org_id=?', self.org_id).order('vehicle_id').group(:vehicle_id)
如果您选择的是车辆,则可能需要将其翻转。
Vehicle.include(:my_record).where(...).
发布于 2013-03-29 21:44:30
如果您不需要结果集中的id,请使用select()
MyRecord.select("distinct [cols you want]").where('org_id=?', self.org_id).order('vehicle_id')
https://stackoverflow.com/questions/15693922
复制