У меня возникла проблема, которую я хотел бы упростить: (совершенно верно, я делаю это неправильно на самом деле).
Требуются
Я хотел бы подсчитать количество пользователей, имеющих id = 1. На языке SQL скажем, что это примерно так:
SELECT COUNT(*) FROM users WHERE id = 1
Код
Я использую Slick в форме "поднял", поэтому вот мой фрагмент кода, подсчитывающий пользователей:
Query(Users.where( _.id === 1).length).first
Фактически, что происходит здесь, это то, что Slick alias ScalaQuery фактически создает подзапрос с причиной фильтра и затем подсчитывает результаты подпроса.
SELECT COUNT(*) FROM (SELECT * FROM users WHERE id = 1))
Похоже на довольно большие накладные расходы для такого запроса.