2010-10-14 6 views
0
SELECT `subscriptions`.*, DATE_ADD(`subscriptions`.created_at, INTERVAL `packages`.validity DAY) as end_date 
    FROM `subscriptions` INNER JOIN `packages` ON `packages`.`id` = `subscriptions`.`package_id` 
    order by end_date; 
+0

de base Avez-vous essayé ce encore vous-même "Je veux dire, nous pourrions aider ... mais ce serait mieux starti ng de ce que vous avez déjà! –

+0

Oui, cette requête fonctionne pour moi Subscription.find_by_sql ("this_query"). mais je me sens triste parce que j'ai travaillé dur pour rendre mon application rails compatible avec d'autres systèmes de base de données. Non seulement Mysql, et cette requête complexe a détruit mes rêves. Spécialement ces fonctions DATE_ADD et INTERVAL – Amer

Répondre

0

En supposant que vous avez un abonnement modèle qui est une sous-classe de ActiveRecord :: Base Ensuite, il est tout simplement

Subsccription.select (» subscriptions. *, DATE_ADD (subscriptions .created_at, INTERVALLE packages .validity JOUR) comme date_fin) .joins (: packages) .order (: date_fin)

que je peux avoir une syntaxe mal, comme il peut être: paquet non. mais les paquets

Questions connexes