Я пытался ответить this question, где я получил эту проблему.Rails 3 Запрос: получение ошибки при использовании 'select' with 'order'
У меня есть модель пользователя, имеющая id
, email
и first_name
столбцы. Поэтому в одном запросе я хочу выбрать пользователей с отличным first_name
, сортировать их по email
и выщипывать их ID
.
Как я могу это сделать?
, что не будет работать:
User.select(:first_name).uniq.pluck(:id)
, потому что он запускает этот SQL
SELECT DISTINCT "users"."id" FROM "users"
. Это выбор отдельного идентификатора пользователя. Но мы хотим, чтобы выбирать различный First_nameUser.order("email DESC").pluck(:id).uniq
SQL сгенерированы:
SELECT "users"."id" FROM "users" ORDER BY email DESC
. Это не сработает, потому что сгенерированный sql не проверяет уникальность first_name.
Я подозреваю, что этот выбор выбирает ячейку, но не строку – asdjkag
. Ваше требование необоснованно. Если вы выделяете first_name, вы должны получить много идентификаторов от одного first_name вместо одного id. –