ruby-on-rails - 找到多个时的最新记录
问题描述
我有这些project
记录:
---------------------------------
|id|name |rate |start_date|
---------------------------------
|1 |project A |90.0 |01-01-2017|
|2 |project B |100.0 |01-01-2018|
|3 |project A |95.0 |01-01-2018|
---------------------------------
我想要所有记录,除非有多个具有相同名称的记录,在这种情况下,我只想要最近的一个start_date
。在上面的示例中,我想获取记录 2 和 3。
我怎样才能做到这一点?到目前为止,我尝试过distinct
,但没有成功。
解决方案
查询:
SELECT project.*
FROM project
LEFT JOIN project as p
ON
p.name = project.name
AND
project.start_date < p.start_date
WHERE p.start_date IS NULL
这是如何运作的!(我去过那儿)
等等,但是如何在 Rails 中做到这一点?!
Project.joins(%Q|
LEFT JOIN projects as p
ON
p.name = projects.name
AND
projects.start_date < p.start_date
|).where(p: { start_date: nil })
推荐阅读
- amazon-web-services - 使用 AWS Amplify 更新 DynamoDB 架构
- php - 如何判断自定义字段是否包含 wordpress 中的 mp4 文件?
- tableau-api - 如何为单个维度的不同元素设置不同的颜色
- python - 将持续时间创建为单独的半小时带 Pandas 日期时间
- javascript - jQuery | 在窗口滚动时保持顶部 div 元素在视图中
- javascript - Geolocation API 不会在移动浏览器中提示位置
- python - Flask 函数有多个参数值
- javascript - 调用超时时,AngularJS Promise 不会被取消
- excel - VBA 运行一个宏,该宏运行从下拉列表中选择的其他宏
- excel - 自定义右键菜单 Excel 加载项未加载