2015-04-18 75 views
0

嗨,我有兩個DB表。第一個表如下。如何獲取兩個關聯的數據庫值使用Rails 3

表名稱 -

t_hcsy_details在模型 -

class THcsyDetails < ActiveRecord::Base 

end 

類名稱在側表中的值在下面給出。

HCSY_Details_ID HCSY_ID HCSY_Fund_Type_ID Amount 
1     2  1     1125 
2     2  2     390 
3     2  3      285 
4     2  4     100 
5     2  5      60 
6     2  6      40 

我的第二張桌子在下面給出。

表名:

t_hcsy_fund_type_master

類模型:

class THcsyFundTypeMaster < ActiveRecord::Base 

end 

表數據如下。

HCSY_Fund_Type_ID Fund_Type_Code Fund_Type_Name Amount 

     1     1    woods   1125 

     2     2    Burning  390 

     3     3    goods   285 

     4     4    brahmin  100 

     5     5    swd   60 

     6     6    Photo   40 

我只知道HCSY_ID值(即2)第一table.But我需要Fund_Type_Name和金額從第二table.As你可以看到一個HCSY_ID有6種不同的records.But我需要的所有Fund_Type_Name和金額一個HCSY_ID。請幫助我通過爲上面顯示的兩個類創建對象來解決此問題。請幫助我。

回答

2

您還沒有指定任何關係的設置,所以它會在兩個查詢會更容易分裂的:

# you already have hcsy_id 
fund_type_ids = THcsyDetails.where(hcsy_id: hcsy_id).pluck(:hcsy_fund_type_id) 
fund_types = THcsyFundTypeMaster.where(id: fund_type_ids) 
fund_types.group(:fund_type_name).sum(:amount) 

如果你有適當的關係設置,上面會已經簡化爲:

THcsyDetails. 
joins(association_name). # THcsyFundTypeMaster 
where(hcsy_id: hcsy_id). 
group("#{t = THcsyFundTypeMaster.table_name}.fund_type_name"). 
sum("#{t}.amount") 
相關問題