我想從使用MySQL轉換到使用PostgreSQL。我有這種類型的結構:如何最好地解決PostgreSQL的更嚴格的分組問題
用戶(實體) - >按 - >企業(實體) - >故事
用戶需要看到所有的新聞更新推出了由他們按照業務。以下查詢對MySQL非常有用,因爲它僅顯示story.id中的所有關聯故事和組。不幸的是,由於PostgreSQL在SQL標準的解釋中更加直接,如果我想要執行GROUP BY子句,我需要使用DISTINCT子句分別詢問每個字段。
Story.find(:all, :joins => { :entity => { :followers => :follower } }, :conditions => ['followers_follows.id = ?', 4], :group => 'stories.id')
PostgreSQL的吐出:「ERROR:列‘stories.entity_id’必須出現在GROUP BY子句或聚合函數中使用」
不必指定每個字段單獨看起來不太優雅。如果任何人都可以給我一個乾淨的方式來獲得與MySQL相同的結果,而不必訴諸重複的字段(刪除組),或者必須指定每個單獨的字段以及DISTINCT子句,我將不勝感激!
謝謝!
除了MySQL之外,其他每個數據庫都要求你指定所有沒有應用於它們的聚合函數的列,以包含在GROUP BY語句中。 – 2009-10-25 00:49:37