行いたいこと
現在、Active Recordのjoinsメソッド(SQLでいうところのinner join)を使用して、取ってきた値のtype_idがある値のレコードに関しては、次のレコードを取得するということをRailsのActive Recordで行いたいです。
SQL
SQLでは取れております。
下記参照
mysql
1SELECT 2... 3CASE WHEN apps.app_type_id = 10 THEN sub_app_types.description 4 WHEN 1 <= apps.app_type_id <= 25 THEN app_types.description 5 ELSE "その他" END 6AS "フォーマット名" 7... 8FROM apps 9INNER JOIN app_types ON apps.app_type_id = app_types.id 10INNER JOIN 11(SELECT apps.id, apps.app_type_id from apps) 12AS sub_apps ON apps.id + 1 = sub_apps.id 13inner join app_types 14AS sub_app_types ON sub_apps.app_type_id = sub_app_types.id 15...;
上記のここの部分
INNER JOIN (SELECT apps.id, apps.app_type_id from apps) AS sub_apps ON apps.id + 1 = sub_apps.id inner join app_types AS sub_app_types ON sub_apps.app_type_id = sub_app_types.id
RailsのActive Recordメソッドで取得したいです。
聞きたいこと
- joinsメソッド内で、SQL文を書くことができるか?
- 取れない場合の最適な処理は何か?
現状、
App.joins(:app_type).select("apps.*, app_types.*")
このような形になっています。
App.joins(:app_type).joins(「select文でappsを呼び出す処理」).select("apps.*, app_types.*")
のようにできますでしょうか?
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。