формирую запрос
Код: Выделить всё
$query = $this->store->getProducts()
->with(['images'])
->alias('p')
->isPubliched('p')
->category($category, 'p');
Код: Выделить всё
public function isPubliched($alias = null)
{
return $this
->active($alias)
->hasPrice($alias)
->hasImages($alias);
->groupBy(($alias ? $alias . '.' : '') .'id');
}
Код: Выделить всё
public function hasImages()
{
return $this->joinWith('images', true , 'INNER JOIN');
}
Проблема в том что запрос оборачивается в SELECT c.count FROM () что работает существенно дольше на относительно небольшой базе в 200к записей по сравнению с запросом такого видаSELECT c.count FROM (
SELECT p.* FROM `product` p ... INNER JOIN product_image ... GROUP BY p.id
) as c
Можно ли решить вопрос без костылей так что бы count не оборачивал запрос при использовании ActiveDataProvider?SELECT COUNT(distinct p.id) FROM `product` ...