我试图通过对多个表中的列进行排序来在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日
答案 0 :(得分:3)
我假设您使用的是ActiveRecord?将其添加到ActiveRecord查询中:
.order("events.date ASC, featureds.date ASC")
表名是我猜的..(featureds
?)
另见the guide。