2010-05-16 4 views
2

J'ai une seule question MYSQL et j'ai besoin d'aide dès que possible. Base de données:Sql Sélectionnez une question de requête. Merge Rows

------------------------------------------------------------------- 
Email     | Name      | Tag 
------------------------------------------------------------------- 
[email protected]   |Test Person    | TagOne 
[email protected]   |Test Person    | Tag Two 
------------------------------------------------------------------- 

Besoin d'une requête SQL qui renverra

------------------------------------------------------------------- 
Email     | Name      | Tag 
------------------------------------------------------------------- 
[email protected]   |Test Person    | TagOne, Tag Two 
------------------------------------------------------------------- 

Toute aide?

Répondre

3

Utilisation:

SELECT t.email, 
     t.name, 
     GROUP_CONCAT(DISTINCT t.tag ORDER BY t.tag SEPARATOR ', ') 
    FROM YOUR_TABLE t 
GROUP BY t.email, t.name 

Référence:

+0

Wow! Je viens juste de voir votre message comme confus pensant qu'il était le mien. Nous avons posté en même temps! Quel super forum. Sera de retour. Merci de votre aide! – Jono

0

Pour quiconque essaie de le faire et est bloqué de passer des heures pour une solution:

SELECT Email , Name, GROUP_CONCAT (Balise ORDER BY Balise ASC SEPA RATOR ',') À PARTIR DU TABLEAU GROUP BY Email

+1

Méfiez-vous de la colonne cachée de MySQL dans les clauses GROUP BY & HAVING - ce n'est pas standard, et ne sera pas porté vers d'autres bases de données: http://dev.mysql.com/doc/refman/5.0/fr/group-by-hidden -columns.html –