Disponen de una tabla User, UserBigge y Badge. Están conectados a través de has_many through. Un usuario puede tener varios de la misma insignia, pero quiero consultar una lista única.Rails 3 DISTINCT QUERY
@user.badges.select("DISTINCT id").order("created_at DESC")
Se está lanzando un error:
SQLite3::SQLException: near "DISTINCT": syntax error:
¿Cuál sería la sintaxis correcta?
EDIT: AÑADIDO ERROR TODO
SQLite3::SQLException: near "DISTINCT": syntax error: SELECT "badges".*, DISTINCT badges.id FROM "badges" INNER JOIN "userbadges" ON "badges".id = "userbadges".badges_id WHERE (("userbadges".user_id = 1))
Podría ser la coma entre Seleccionar y distinta?
debe incluir todo el texto de error en su pregunta, hay algo extraño pasando allí. – klochner
¿cuál es el SQL generado? – Vadim
La coma entre el seleccionado y distinto es el problema. Estoy teniendo el mismo problema cuando pruebo una selección distinta con una combinación. Creo que el problema es que Rails agrega la primera cláusula de selección siempre que tenga un join para que solo obtenga los campos correctos, luego su llamada 'select' agrega otro y estos se concatenan con comas. Me parece un error en Rails. – David