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 列的查询。换句话说,上面的前两条记录将被视为重复,其中一条将被遗漏。我该怎么做?

另外,作为旁注,我不明白为什么 MyRecord 有 ID(可通过 MyRecord.id 访问),但 schema.rb 文件中没有 MyRecord_ID 列。

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

4

2 回答 2

0

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

MyRecord.select("distinct [cols you want]").where('org_id=?', self.org_id).order('vehicle_id')
于 2013-03-29T21:44:30.043 回答
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 回答