Это было немного интересно, так как я занимаюсь программированием как на MsSQL, так и на MySql. В SQL я использовал функцию под названием STUFF. В MySQL вы можете использовать функцию INSERT. Я опробовал следующий запрос в MsSQL. У меня нет MySQL под рукой, чтобы попробовать мой запрос. Если у меня будет время, я опубликую версию запроса MySQL.
DECLARE @person TABLE (Person_ID INT, Name VARCHAR(50), Age INT)
INSERT INTO @person VALUES
(1,'Mark Vance',19),
(2,'Michael Tsu',22),
(3,'Mark Jones',29),
(4,'Sara Young',25)
DECLARE @groups TABLE (Group_ID INT, Group_Name VARCHAR(50), Group_Left INT, Group_Right INT)
INSERT INTO @groups VALUES
(1,'Root',1,6),
(2,'Node',2,5),
(3,'Sub Node',3,4)
DECLARE @person_to_group TABLE (ID INT, Person_ID INT, Group_ID INT)
INSERT INTO @person_to_group VALUES
(1,3,1),
(2,3,2),
(3,1,1),
(4,4,1),
(4,1,1)
SELECT *,STUFF((SELECT ',' + CAST(g.Group_ID AS VARCHAR) FROM @groups g
JOIN @person_to_group pg ON g.Group_ID = pg.Group_ID AND pg.Person_ID = a.Person_ID FOR XML PATH('')) , 1, 1, '' ) FROM @person a
Функция : INSERT (str, pos, len, newstr)
Документация : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_insert