2010-10-14 2 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

вы пытались это сам еще «Я имею в виду, мы могли бы помочь ... но было бы лучше начать из того, что у вас уже есть! –

+0

Да, этот запрос работает для меня Subscription.find_by_sql («this_query»). но мне грустно, потому что я упорно трудился, чтобы мои рельсы приложения совместимы с другими системами баз данных не только Mysql, и этот сложный запрос уничтожил мои мечты. Специально эти функции DATE_ADD и INTERVAL – Amer

ответ

0

Предполагая, что у вас есть модель подписки, подкласс ActiveRecord :: Base Тогда это просто только

Subsccription.select (»subscriptions. *, DATE_ADD (subscriptions .created_at, ИНТЕРВАЛ packages .validity ДЕНЬ), как датой_окончания) .joins (: пакеты) .order (: датой_окончания)

я могу иметь некоторый синтаксис неправильно, например, как это может быть: пакет не:. пакеты, а основной