2015-04-22 64 views
0

我需要先用新鮮的系列電影。Postgresql按專欄順序排列,不在組

在鐵軌我:

l, o = 30, 0 
Movie.joins(:series).order("series.created_at DESC").group("movies.id").limit(l).offset(o) 

它翻譯成:

SELECT "movies".* 
FROM "movies" INNER JOIN "series" ON "series"."movie_id" = "movies"."id" 
GROUP BY movies.id 
ORDER BY series.created_at DESC 
LIMIT 30 OFFSET 0 

但我有錯誤訊息

ActiveRecord::StatementInvalid: PG::GroupingError: ERROR: 
column "series.created_at" must appear in the GROUP BY clause or be used 
in an aggregate function 
LINE 1: ..._id" = "movies"."id" GROUP BY movies.id ORDER BY series.cre... 
                  ^

和偏移工作很奇怪,有時他重複的結果。

我該如何解決這個問題而不使用sql?它會在MySQL中工作嗎?

在Pg中,我有很多像這樣的小問題,如果我將它更改爲MySQL,它會如何更好地工作?

PS: - 它不是一個pgSQL的或MySQL的問題在SQLite的,如果你想要一個新鮮Movie.joins(:series).order("max(series.created_at) DESC").group("movies.id").limit(l).offset(o)

無結塊此查詢不知道要什麼系列它的工作原理文件

回答

3

使用AGG最大。

在posgres你有更多的可能性聚合