2013-09-19 6 views
0

Хорошо, я вытягиваю список пользователей из базы данных mySQl, тогда я ищу назначение групп в другой таблице. если они назначены нескольким группам, возвращаются несколько строк.mySQL, соединяющий данные из другой таблицы

Мой вопрос в том, как я могу объединить имена групп в один столбец результатов.

SELECT `u`.`ID` 
     ,CONCAT(`First-Name`," ",`Last-Name`) as `Name` 
     ,`g`.`Group-Name` 
    FROM `application-users` AS `u` 
    JOIN `groups` AS `g` ON (`g`.`Assigned-Users` LIKE CONCAT("%|",`u`.`ID`,"|%")) 
    WHERE `u`.`Status` = "Active" && `u`.`Type` = "Business Development" 
ORDER BY `First-Name` ASC 

Заранее благодарен!

+1

[Возможный дубликат] (http://stackoverflow.com/questions/149772/how-to-use-group-by-to-concatenate-strings-in-mysql) – Quantastical

+0

Благодаря всем для корректировки/оптимизации аспектов этого сообщения! – Cybervanes

ответ

0
SELECT `u`.`ID`,CONCAT(`First-Name`," ",`Last-Name`) as `Name`, 
GROUP_CONCAT(`g`.`Group-Name` SEPARATOR ', ') as `Groups`, 
CONCAT('|',GROUP_CONCAT(`g`.`ID` SEPARATOR '|'),'|') as `GroupIDs` 
FROM `application-users` AS `u` 
JOIN `groups` AS `g` ON (`g`.`Assigned-Users` LIKE CONCAT("%|",`u`.`ID`,"|%")) 
WHERE `u`.`Status` = "Active" && `u`.`Type` = "Business Development" 
GROUP BY `u`.`ID` 

Спасибо за внимание!

Смежные вопросы