Я делаю простое соединение между двумя таблицами - первый, называемый users, имеет поля:
|| id || имя ||
и вторая таблица, называемая группами, имеет те же поля:
|| id || имя ||
Отношения между ними ч / б очень много, потому что один пользователь может входить во многие группы (представляющих интерес), и группа будет содержать более одного пользователя. Итак, у меня есть третья таблица user_group с полями:
|| user_id || group_id ||
Где оба являются первичными ключами, один для пользователей и один для групп.
Цель состоит в том, чтобы составить список со всеми группами и людьми, участвующими в каждой.
Для этого я сделал свой запрос:
$q = $this->db->query('SELECT u.name FROM users u
JOIN user_group ug ON u.id = ug.user_id
JOIN groups g ON g.id = ug.group_id WHERE ug.group_id = "4" ');
затем изменил его, используя активные записи:
$this->db->select('users.name');
$this->db->from('users');
$this->db->join('user_group', 'user_group.user_id = users.id');
$this->db->join('groups', 'groups.id = user_group.group_id');
$this->db->where('user_group.group_id', 3);
$q = $this->db->get();
И таким образом я могу взять пользователей для любой группы, указав «id» из таблицы групп. Но я не могу понять, как заставить его отображать оба - название группы вместе с участвующими пользователями. Когда я создаю и удаляю из таблиц, идентификаторы становятся очень неупорядоченными, у меня может быть 20 групп, а у некоторых групп может быть id = 53, поэтому цикл jsut от 1 до number_of_groups недостаточно хорош. Как это сделать?
Спасибо
Лерон