Задать вопрос
@pibiv

Как правильно обьденить строки в SQL?

Есть запрос в БД вида

SELECT 
users.name AS users_name, 
users.uid AS uid, 
users.created AS users_created,
domain_editor.domain_id AS domain_editor_domain_id, 
'user' AS field_data_field_user_statut_user_entity_type

FROM 
users

LEFT JOIN  domain_editor ON users.uid = domain_editor.uid
WHERE (( (users.status <> '0') ))
ORDER BY users_created DESC
LIMIT 10 OFFSET 0


Который на выходе дает вот такой вот результат

f32a2dd7827c47bcad38d6f6cd20d0c5.png

То есть один и тот же пользователь с разными domain id показывается 3 раза.

Клиент желает что бы пользователь показывался только один раз и domain id был через запятую.

Вопрос как это правильно реализовать?

Пробовал использовать нечно вроде
GROUP_CONCAT(DISTINCT domain_editor.domain_id ORDER BY domain_editor.domain_id ASC SEPARATOR ',')


Но увы немогу добиться правильного результата в итоге.
  • Вопрос задан
  • 2328 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
GROUP BY uid и GROUP_CONCAT(domain_editor.domain_id) AS domain_editor_domain_id
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
В group by перечисляете все поля кроме domain_id.

select 
users.name AS users_name, 
users.uid AS uid, 
users.created AS users_created,
GROUP_CONCAT(DISTINCT domain_editor.domain_id ORDER BY domain_editor.domain_id ASC SEPARATOR ',') AS domain_editor_domain_id_concated, 
'user' AS field_data_field_user_statut_user_entity_type
...
group by users_name, uid, users_created, field_data_field_user_statut_user_entity_type
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы