Rails在多个表上按列排序

时间:2012-12-28 10:50:30

标签: sql ruby-on-rails ruby postgresql

我试图通过对多个表中的列进行排序来在rails中进行SQL排序。

Event和Featured模型都有一个名为“date”的列。一个事件可以归属于精选。我希望能够将这两个列连接在一起,并在这两个列上按日期列排序。因此,如果精选的日期是24/05/12并且活动的日期是23/05/12,那么事件日期将首先显示。

我更喜欢在SQL中执行此操作(不使用Ruby排序)。

谢谢!

编辑:

.order("events.date ASC, featureds.date ASC")

无法正常工作,因为这会先按顺序撤回事件,然后按顺序撤回功能。

例如:

活动1日期:2012年4月23日

活动2日期:2012年4月24日

特色1日期:2012年4月23日

我想让sql撤回的是:

活动1日期:2012年4月23日

特色1日期:2012年4月23日

活动2日期:2012年4月24日

如上所述的排序将如此完成:

活动1日期:2012年4月23日

活动2日期:2012年4月24日

特色1日期:2012年4月23日

1 个答案:

答案 0 :(得分:3)

我假设您使用的是ActiveRecord?将其添加到ActiveRecord查询中:

.order("events.date ASC, featureds.date ASC")

表名是我猜的..(featureds?)

另见the guide