Ruby on rails 3 如何通过连接键ROR从多个表检索数据

Ruby on rails 3 如何通过连接键ROR从多个表检索数据,ruby-on-rails-3,Ruby On Rails 3,我正在为一家使用ROR3的公司开发员工档案管理系统 我是新手。一个月前才开始。因此,在开发应用程序时会遇到一些麻烦 这些是一些桌子 1-概况 2-促销活动 3-单位分配 实际上,服务编号是员工的唯一ID号。所以我想用服务号连接表 这是我用来生成一些信息的原始sql。但我在ROR里做不到 SELECT promotions.service_number, profiles.first_name, promotions.rank, promotions.date_of_rank FROM prof

我正在为一家使用ROR3的公司开发员工档案管理系统 我是新手。一个月前才开始。因此,在开发应用程序时会遇到一些麻烦

这些是一些桌子

1-概况 2-促销活动 3-单位分配 实际上,服务编号是员工的唯一ID号。所以我想用服务号连接表

这是我用来生成一些信息的原始sql。但我在ROR里做不到

SELECT promotions.service_number, profiles.first_name, promotions.rank, 
promotions.date_of_rank
FROM profiles, promotions
WHERE promotions.service_number = profiles.service_number
AND promotions.id = (SELECT max(id) FROM promotions WHERE service_number = 3975)
在配置文件索引页面中,我想显示配置文件详细信息加上员工的当前职级和单位

有人能帮我解决这个问题吗

如果您想使用而不是使用,那么您将看到以下内容:

Profiles.joins("JOIN promotions ON promotions.service_number = profiles.service_number")
然后将其展开以模拟您的查询:

@promotions_id = Promotions.select("max(id)").where(:service_number => 3975)

Profiles.select("promotions.service_number, profiles.first_name, promotions.rank, promotions.date_of_rank").joins("JOIN promotions ON promotions.service_number = profiles.service_number").where("promotions.id = ?", @promotions_id)
SELECT promotions.service_number, profiles.first_name, promotions.rank, 
promotions.date_of_rank
FROM profiles, promotions
WHERE promotions.service_number = profiles.service_number
AND promotions.id = (SELECT max(id) FROM promotions WHERE service_number = 3975)
Profiles.joins("JOIN promotions ON promotions.service_number = profiles.service_number")
@promotions_id = Promotions.select("max(id)").where(:service_number => 3975)

Profiles.select("promotions.service_number, profiles.first_name, promotions.rank, promotions.date_of_rank").joins("JOIN promotions ON promotions.service_number = profiles.service_number").where("promotions.id = ?", @promotions_id)