mysql - Rails - 如何加入基于单个 View 的两个关系?

标签 mysql ruby-on-rails activerecord ruby-on-rails-4

我在 guide 之后在我的 Rails 应用程序中定义了一个 View

所以,目前我有这个类:

class GoldenResult < ActiveRecord::Base
    scope :latest_builds, -> { select('MAX(id) as id').group(:platform_id, :release_id, :configuration_id) }

end

我想执行以下连接:

SELECT * FROM performance_dev.report_golden_results e 
join (SELECT max(id) as 'id' 
from performance_dev.report_golden_results 
group by platform_id, release_id, configuration_id) s 
ON s.id = e.id;

问题是我不知道如何访问 ON 连接变量(即 ON s.id = e.id)

创建此查询的 Rails 常规方法是什么?

谢谢!

最佳答案

我最终使用以下查询解决了这个问题:

GoldenResult.joins("INNER JOIN (SELECT MAX(id) as 'id'
                                FROM report_golden_results
                                GROUP BY platform_id, release_id, configuration_id) latest_builds
                    ON latest_builds.id=report_golden_results.id")

这是一个解决方法,因为我仍然不知道如何访问 JOIN 中的范围,但它确实有效......!

(即 - 在这个解决方案中我根本没有使用范围)。

关于mysql - Rails - 如何加入基于单个 View 的两个关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325098/

相关文章:

ruby-on-rails - 关于 RoR 更新数据库记录

ruby-on-rails - Rails 3中如何修改事件记录查询结果属性值

mysql - Rails 仅以以下格式存储和检索时间 : hh:mm:ss

Ruby gem 'ruby oci8' 返回错误 : 'OCI.DLL: 126(The specified module could not be found. ) (LoadError)'

来自两个表的MYSQL QUERY总和

ruby-on-rails - Rails 在没有关联的列值上过滤记录

c# - .NET (C#) MySqlDbType 用于 char

ruby-on-rails - Rails 集合到嵌套 json

Mysql表定义错误

javascript - 我应该将所有数据库数据存储在内存中node.js吗?