2012-12-28 67 views
0

我試圖通過在多個表中的列上排序來在Rails中進行SQL排序。Rails在多個表中按列排序

「事件」和「特色」模型都有一個名爲「日期」的列。一個事件可以屬於精選。我希望能夠將這兩列加入到一起,並按照這兩個日期列排序。因此,如果精選的日期是24/05/12,並且活動的日期是23/05/12,那麼活動日期將首先顯示。

我寧願在SQL中執行此操作(不使用Ruby排序)。

謝謝!

編輯:

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

不會工作,因爲這將拉回第一事件,以,那麼featureds秩序。

例如:

事件1個日期:23/04/12

事件2日期:24/04/12

精選1日期:23/04/12

我想讓sql回退的是:

事件1日期:23/04/12

精選1日期:23/04/12

事件2日期:24/04/12

訂貨像上面會拉它通過像這樣:

事件1個日期: 23/04/12

事件2日期:24/04/12

精選1日期:23/04/12

+1

您可以發佈您現有的SQL請 –

回答

2

我假設你正在使用ActiveRecord?添加到您的ActiveRecord查詢:

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

表名是我的猜測。(featureds?)

另見the guide

+0

這將首先顯示事件,然後顯示不是我想要實現的功能。我更新了原文,以反映我的意思。 – jay

+0

我認爲你不能檢索這樣的記錄組合。最簡單的方法是在檢索後執行兩個查詢並加入集合。 – rdvdijk

+0

我最終創建了一個單獨的表,其中包含緩解問題的事件日期。 – jay