環境はRuby on rails・MySQLです。
ruby
1 select_sql = 'hoge.*,hoge2.* hoge3.*' 2 @get_hoge= Hoge.joins(:hoge2, :hoge3).select(select_sql).where(time: @day1..@day2)
hogeというテーブルには、hoge2とhoge3の要素が入っています。
hoge2のjoinは上手く出来ています。モデルは一部省略しているのですが、下記の通りです。
hoge1
ruby
1class Hoge< ApplicationRecord 2 belongs_to :hoge2,:class_name => "Hoge2", :foreign_key => 'hoge2' 3 belongs_to :hoge3,:class_name => "Hoge3", :foreign_key => 'id'
hoge2
ruby
1class Channel < ApplicationRecord 2 has_one :hoge, :class_name => "Hoge"
hoge3
ruby
1class Hoge3 < ApplicationRecord 2 has_many :hoge, :class_name => "Hoge", :primary_key => 'hoge_id', :foreign_key => 'hoge_id'
hoge1っていうテーブルで使いたいカラムは下記の通りです
id >> hoge3.hoge_id
hoge2 >> hoge2.id
hoge2とhoge2.idが繋がっています。
idとhoge3.hoge_idが繋がっています。
結果はこうなります。
SELECT hoge1.*, hoge2.*, hoge3.* FROM `hoge1` INNER JOIN `hoge2` ON `hoge2`.`id` = `hoge1`.`hoge2` INNER JOIN `hoge3` ON `hoge3`.`id` = `hoge1`.`id`
※whereは省略しています。
色々試したのですが、ここの
`hoge3`.`id` = `hoge1`.`id`
これを
`hoge3`.`hoge1_id` = `hoge1`.`id`
としたいです。どこを変えれば良いか、ご教授を願いします。
あなたの回答
tips
プレビュー