Как объединить данные из одного поля в список с разделителями-запятыми в MySQL по отношению «многие ко многим»?

У меня отношения "многие ко многим" между людьми и отделами, так как один человек может быть во многих отделах.

People          Departments
------          -----------
pID  pName      deptID   deptName
1    James      1        Engineering
2    Mary       2        Research
3    Paul       3        Marketing
                4        Communications

People_Departments
------------------
pID   deptID
1     1
1     2
2     2
2     4
3     1
3     2
3     3

Я хочу следующее:

pName  deptName
James  Engineering, Research
Mary   Research, Communication
Paul   Engineering, Research, Marketing

Если я просто LEFT JOINs на в таблицах, использующих приведенный ниже SQL, я получу несколько строк, относящихся к одному человеку:

SELECT people.pName,
       departments.deptName
FROM people
LEFT JOIN people_departments ON people.pID=people_departments.pID
LEFT JOIN departments ON people_departments.deptID=departments.deptID

Я пробовал различные комбинации GROUP_CONCAT , но безуспешно.

Есть идеи, которыми можно поделиться?

13
задан Shailen 24 July 2011 в 21:33
поделиться