Я получаю весь город и использую функцию для подсчета:
foreach ($cities as $city) {
echo $city->getName() . '|' . CityTable::getInstance()->getCount($city->getId(), a). '|' . CityTable::getInstance()->getCount($city->getId(), b). '|' . CityTable::getInstance()->getCount($city->getId(), c);
}
public function getCount($id, $num)
{
$q = $this->createQuery('u')
->where('city_id = ?', $id)
->andWhere('num = ?', $num)
->execute();
return count($q);
}
это работает нормально, но это генерируется для многих, связанных с базой данных.С каждой итерацией в foreach три раза вызывается функция getCount.Если у меня в таблице городов более 1000 городов, то у меня более 10000 запросов к базе данных.Как я могу уменьшить это?