Rails初心者です。
RailというよりSQLの問題の気がしないでもないのですが、ある、リレーションが結ばれている2つのテーブルのLeft Outer Joinの方法について教えて下さい。
まずはシンプルにこんな感じのテーブルです。
<テーブル1:Item>
has_many :item_color_price
[カラム]
-id
-name
テーブル2:Item_Color_price
belongs to :item
[カラム]
-id
-color
-item_id
-price
で、この時に、例えば全アイテムの黄色(color)の値段が知りたい、ということで、下記の様な表を作りたいです。
item_id item_name price
1 AAA ¥200
2 BBB ¥150
3 CCC ¥ 50
4 DDD (null)
5 EEE (null)
ポイントは、Item_Color_priceテーブルのcolorで絞った条件で、ItemテーブルとLeft Joinしたいです。
(黄色を持っていないアイテムも一覧には表示したい)
ruby
1@items = Item.includes(:item_color_prices).where("item_color_prices.color = Yelloow").references(:item_color_prices)
というような書き方をしても、SQLとしては、whereが最後にきてしまうため、結果としては、INNER JOINとなってしまいます。
どんなメソッド、あるいはSQLでも構わないので、書き方のアドバイスをお願いできませんでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/07 07:55