Не съм сигурен дали това е най-добрата практика. Също така може да не е добре, ако имате много данни в DB. Но бих искал да предложа.
1. Вземете идентификаторите на категории в един масив.
2.Свържете таблиците за всяка категория, както следва. (Използване на цикъл foreach за масива)
$this->db->select('*');
$this->db->from('at_category');
$this->db->join('at_category_taxonomy', 'at_category.cat_id = at_category_taxonomy.cat_id');
$this->db->join('at_shop', 'at_category.cat_id = at_shop.shop_category');
$this->db->where('at_category', 1);
$query = $this->db->get();
в горния код, $this->db->where
('at_category', вземете идентификатор от масив );
3.$query
е резултатът за всяка категория.
4.Броят на магазините за всяка категория може да се приеме като,
$numberOfShos = $query->num_rows();