У вас есть таблица User, UserBadge и Badge. Они связаны через has_many через. Пользователь может иметь несколько одинаковых значков, но я хочу запросить уникальный список.Rails 3 DISTINCT QUERY
@user.badges.select("DISTINCT id").order("created_at DESC")
Это бросает ошибку:
SQLite3::SQLException: near "DISTINCT": syntax error:
Что бы правильный синтаксис?
EDIT: ДОБАВЛЕНО ВЕСЬ ОШИБКА
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))
Может быть запятая между выбрать и различны?
вы должны включить весь текст ошибки в свой вопрос, там что-то странное происходит. – klochner
Что такое сгенерированный SQL? – Vadim
Запятая между выбором и отдельными является проблемой. У меня такая же проблема, когда я пытаюсь выбрать выделение с помощью соединения. Я думаю, проблема в том, что Rails добавляет первое предложение select всякий раз, когда у вас есть соединение, так что он только вытягивает правильные поля, тогда ваш вызов 'select' добавляет другой, и они объединены запятыми. Мне кажется, как ошибка в Rails. – David