TakteS
@TakteS
Elixir/Erlang developer

Выборка заданий по количеству исполнителей?

Добрый вечер.

Есть таблица tasks с задачами, в ней есть поле :members_count - максимальное число исполнителей для одной задачи. Исполнители хранятся в таблице task_users, в ней поля :task_id и :user_id.

Как выбрать только те задачи, у которых число исполнителей меньше чем :members_count?
  • Вопрос задан
  • 2597 просмотров
Пригласить эксперта
Ответы на вопрос 2
@himik
users_count = TaskUser.select("DISTINCT(user_id)").count
Task.where("members_count > ?", users_count)


как один из вариантов, поскольку моделей вы не показали.
Ответ написан
Комментировать
estum
@estum
С гемом squeel как-то так:
Task.joins{task_users}.group{tasks.id}.having{count(task_users.id) < tasks.members_count}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы