2011-05-18 1 views
4

J'ai une table avec des colonnes: (project_id, nom)cat string sql comme fonction d'agrégation: cat plusieurs enregistrements ensemble

Il est une liste de personnes, chacun avec le projet auquel il appartient. Si une personne participe à deux projets, elle est dupliquée.

Je veux extraire une table avec des colonnes: (project_id, people) où people est un chat de chaîne des noms de toutes les personnes travaillant sur ce projet. Le chat doit être séparés par des virgules, comme ceci:

12, john 
12, mark 
12, dave 
14, luke 

devient

12, "john, mark, dave" 
14, "luke" 

Répondre

8

vous pouvez le faire avec une simple requête

SELECT project_id, GROUP_CONCAT(name) as people 
FROM table 
GROUP BY project_id 

si vous insistez pour avoir un espace après la virgule:

SELECT project_id, GROUP_CONCAT(name SEPARATOR ", ") as people 
FROM table 
GROUP BY project_id 
+1

'SELECT ... GROUP_CONCAT (nom SÉPARATEUR '') que les gens de ...' –