Здравствуйте.
Довольно все банально, но тем не менее не могу понять каким образом сделать SELECT и COUNT по разным критериям одним запросом через модель.
Вот простой пример как уже пытался:
(выбрать всех пользователей чей статус = 1)$query = DB::select('id', 'name', 'status')
->from('users')
->where('status', '=', 1);
Добавляю к нему пару строк, чтобы пересчитать ВСЕХ пользователей, независимо от статуса:
$total = clone $query;
$total ->select(array(DB::expr('COUNT(id)'), 'total_users'))->from('users')->execute()->as_array();
В итоге тестирую и получаю массив с последним пользователем и числом всех total_users, это не совсем то, что нужно.
Мне необходимо получить полный массив пользователей по критерию и общее число без какого-либо критерия, но сделать это нужно через модель в одном запросе. Как работать с моделью я знаю, хотелось бы получить помощь именно с запросом.
На данный момент я пересчитываю общее число пользователей отдельным запросом:
$total = DB::select(array(DB::expr('COUNT(`id`)'), 'total_users'))->from('users')->execute()->get('total_users');
, но это создает лишнюю нагрузку на БД, причем объем данных которые нужно будет пересчитывать на каждой странице довольно велик.