假设我有一个汽车数据库:
make, model, year, color
我想找到“Dodge”的所有汽车,但不要向我显示同一型号两次: 例如,我可能有:
Dodge,van,2004,red
Dodge,van,2005,blue
Dodge,ram,2005,blue
GM,Sunfire,2006,red
如果我这样做:
Car.where(make:"Dodge",model: $UNIQUE)
我期望得到:
Dodge,van,2004,red
Dodge,ram,2005,blue
当然$UNIQUE不存在...如何使用事件记录/sql来完成此操作?
更一般地说,我想要 x == y && z 在结果集中唯一的所有对象。
这可以通过执行 Car.where(make: "Dodge").all 然后修剪掉重复的模型来使用一些 ruby 来完成,但我想知道是否有更好的方法。
最佳答案
我认为这应该返回具有独特品牌/型号组合的随机汽车(道奇货车和道奇公羊):
Car.where(make: 'Dodge').group(:model)
如果您只是对任何道奇感兴趣并且根本不关心型号(从您的问题中不清楚这一点),那么这可能适合您的需求:
Car.where(make: 'Dodge').first
关于sql - 使用 Rails 查询唯一项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276200/