devo seguente query:Rails 3, ActiveRecord, PostgreSQL - Il comando ".uniq" non funziona?
Article.joins(:themes => [:users]).where(["articles.user_id != ?", current_user.id]).order("Random()").limit(15).uniq
e mi dà l'errore
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...
Quando ho aggiorno la query originale per
Article.joins(:themes => [:users]).where(["articles.user_id != ?", current_user.id]).order("Random()").limit(15)#.uniq
quindi l'errore è andato ... In MySQL .uniq funziona, in PostgreSQL no. Esiste qualche alternativa?
Sei sicuro che la query con 'uniq' restituisce risultati diversi? Mostra le query SQL effettive per ogni variante (usa il metodo 'sql'). – taro
Sono sicuro. Quando ho usato questa query con il database MySQL, quindi senza '.uniq' mi ha restituito anche la stessa riga, ma con' .uniq' sempre una riga univoca. In PostgreSQL se uso '.uniq', ottengo l'errore specificato sopra, se non uso' .uniq', quindi l'errore è sparito, ma sto ottenendo anche le stesse file dal DB. – user984621