У меня есть форма, которая показывает результаты запроса базы данных, эти результаты могут иметь много других активов, связанных с ними, и я хочу найти способ показать, сколько активов имеет каждый элемент. Например, моя таблица относится к областям англии, другая таблица имеет то, где пользователи живут, у меня есть этот код,
$this->db->select('*'); $this->db->from('places'); $this->db->join('users, places.place_id = user.place_id, left'); $this->db->get();
Проблема, с которой я сталкиваюсь, заключается в том, что запрос возвращает имя места и количество пользователей, живущих в этом месте, возможно?
select places.place_id, count(*) as UsersAtThisPlace from places, users where places.place_id = users.place_id group by places.place_id
Не знаю точно, как реализовать через ваш PHP, но он должен быть таким же простым, как и указанный выше запрос в вашем
$ this-> db-> select ("весь пример строки выше");
Кроме того, если бы у вас были другие описательные элементы из таблицы мест, вы могли бы добавить их также перед подсчетом (просто для ясности), но также должны были бы включить их в группу с помощью … таких как
select places.place_id, places.description, places.otherfield, count(*) as UsersAtThisPlace from places, users where places.place_id = users.place_id group by places.place_id, places.description, places.otherfield
Не зная вашу точную настройку db, но что-то вроде этого – как вы будете делать этот запрос, используя активную запись CodeIgniter
$this->db->select('places.place_id'); $this->db->select_sum('places.place_id', 'total'); $this->db->from('places'); $this->db->join('users', 'places.place_id = user.place_id', 'left'); $this->db->group_by('user.place_id'); $this->db->get();