sql - 使用 Rails 查询唯一项目

标签 sql ruby-on-rails ruby

假设我有一个汽车数据库:

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/

相关文章:

ruby-on-rails - 如何在 Rails 中为 Mechanize 设置自定义用户代理

ruby - 从 Mechanize 中删除以前存储的 cookie

mysql - 如何处理不同的答案类型

java - Hibernate 的 nullable = false 不适用于所有情况

mysql - 将分隔的逗号值插入到sql表中

ruby-on-rails - rails : Can't verify CSRF token authenticity when making a POST request

javascript - 使用 Rails 加载页面时的 jQuery Mobile 弹出窗口

ruby - 有什么方法可以确定哪个对象调用了方法?

sql - sql中的having子句中的case语句

php - 基于随机顺序的下一个和上一个MYSQL