は、私は次のクエリがありますRails 3、ActiveRecord、PostgreSQL - ".uniq"コマンドが機能しない?
Article.joins(:themes => [:users]).where(["articles.user_id != ?", current_user.id]).order("Random()").limit(15).uniq
をし、私がそうエラーがなくなって
Article.joins(:themes => [:users]).where(["articles.user_id != ?", current_user.id]).order("Random()").limit(15)#.uniq
に元のクエリを更新エラー
PG::Error: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
LINE 1: ...s"."user_id" WHERE (articles.user_id != 1) ORDER BY Random() L...
を与えます... MySQL .uniqでは、PostgreSQLでは動作しません。存在する代替手段はありますか?
'uniq'を使用したクエリが異なる結果を返すことは確かですか?各バリアントの実際のSQLクエリを表示してください( 'sql'メソッドを使用してください)。 – taro
私は確信しています。私はMySQLデータベースでこのクエリを使用したので、 '.uniq'を使わないと同じ行が返されますが、' .uniq'は常に一意の行です。 PostgreSQLで '.uniq'を使用すると、' .uniq'を使わないと上記のエラーが出ますので、エラーはなくなりますが、DBからも同じ行が得られます。 – user984621