変換したい
SELECT `users`.* FROM `users`
INNER JOIN `memberships`
ON `memberships`.`user_id` = `users`.`id`
INNER JOIN `roles`
ON `roles`.`id` = `memberships`.`role_id`
WHERE `memberships`.`group_id` = 'NUCC' AND (expiration > '2012-07-02')
ORDER BY `roles`.`rank` DESC
ActiveRecord アソシエーションに。
グループには、メンバーシップを通じて多くのメンバー (クラス User) があります。各メンバーシップには、別のテーブル (ロール) にマップされ、その後 AR モデル (ロール) にマップされるロール (role_id) があります。各ロールには、ランク (整数) が関連付けられています。
グループのメンバーをメンバーシップ-ロール-ランクで単純に並べ替えたいと思います。