Как удалить повторяющиеся значения из GROUP_CONCAT() в select() CodeIgniterPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как удалить повторяющиеся значения из GROUP_CONCAT() в select() CodeIgniter

Сообщение Anonymous »

У меня возникла проблема с таблицей, которую я хочу построить.
Эта таблица использует базу данных MySQL с несколькими таблицами, связанными таблицами «многие ко многим».
Я использую код JSON для вставки значений в таблицу jQuery.
Вот модель, используемая для запроса значений в базе данных:

Код: Выделить всё

function list_all()
{
$login_id = $this->session->userdata('User_id');
$this->db->select('p.project_id, p.Project, p.Description, p.Status, p.Thumbnail, p.StartDate, p.EndDate, t.template_id, t.Template')
->select('GROUP_CONCAT(v.Name SEPARATOR ",") as PeopleList, GROUP_CONCAT(w.asset_id SEPARATOR ",") as AssetsList', FALSE)
->from('projects p')
->join('assigned_projects_ppeople a', 'a.project_id = p.project_id')
->join('assigned_assets_pproject w', 'w.project_id = p.project_id')
->join('project_templates t', 't.template_id = p.template_id')
->join('people v', 'v.people_id = a.people_id')
->where('a.people_id', $login_id)
->group_by('p.project_id');

$query = $this->db->get();

$rows = $query->result_array();

//Return result to jTable
$jTableResult = array();
$jTableResult['Result'] = "OK";
$jTableResult['Records'] = $rows;
$result = json_encode($jTableResult);
return $result;
}
Все значения хорошо перечислены в таблице jQuery, за исключением значений GROUP_CONCAT, которые дублируются для имени человека по количеству ресурсов, перечисленных в столбце «Активы».
Более того, если с проектом нет входных ресурсов, проект не загружается и не отображается в таблице.
Вот снимок экрана таблицы с кодом JSON https://i.sstatic.net/jEj4D.png
Для информации: в каждом проекте есть только один пользователь «Майкл Бонфилл».
Вот выходные данные функции Last_query()

Код: Выделить всё

SELECT `p`.`project_id`, `p`.`Project`, `p`.`Description`, `p`.`Status`, `p`.`Thumbnail`, `p`.`StartDate`, `p`.`EndDate`, `t`.`template_id`, `t`.`Template`, GROUP_CONCAT(v.Name SEPARATOR ", ") as PeopleList, GROUP_CONCAT(w.asset_id SEPARATOR ", ") as AssetsList
FROM (`projects` p)
JOIN `assigned_projects_ppeople` a ON `a`.`project_id` = `p`.`project_id`
JOIN `assigned_assets_pproject` w ON `w`.`project_id` = `p`.`project_id`
JOIN `project_templates` t ON `t`.`template_id` = `p`.`template_id`
JOIN `people` v ON `v`.`people_id` = `a`.`people_id`
WHERE `a`.`people_id` = '1'
GROUP BY `p`.`project_id`
Если хотите, я могу экспортировать SQL моей базы данных для получения дополнительной информации.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/198 ... ers-select
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»