Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2006, 21h30   #1
Invité de passage
 
Inscription : juillet 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 5
Points : 4
Points : 4
Envoyer un message via MSN à the_nul
Par défaut requète GROUP BY CONCAT

Boujour à tous,
j'ai une petite question sur une requete sql (Mysql 5.1)

Valeurs dans ma table :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
mysql> SELECT * FROM log;
+----+-----+
| id | val |
+----+-----+
|  1 |   1 |
|  1 |   2 |
|  1 |   3 |
|  2 |  10 |
|  2 |  11 |
|  2 |  13 |
+----+-----+
6 rows IN SET (0.00 sec)
je souhaiterais obtenir pour chaque id la liste des valeurs du champ val sur une ligne de resultat avec les valeurs concaténées.
soit :
Code :
1
2
3
4
5
6
+----+-----+
| id | val |
+----+-----+
|  1 |   1,2,3 |
|  2 |  10,11,13 |
+----+-----+
je pense que la solution est dans GROUP BY + CONCAT ou peut etre un select imbriqué... mais je n'arrive pas à obtenir ce resultat.

Merci d'avance pour vos futur réponses.
the_nul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2006, 23h31   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par the_nul
je pense que la solution est dans GROUP BY + CONCAT
En fait, c'est un GROUP BY + GROUP_CONCAT, une fonction qui (à ma connaissance) n'existe qu'en MySQL. Cela donne :

Code :
1
2
3
4
 
SELECT id, GROUP_CONCAT(val)
FROM Log
GROUP BY id
Je te renvoie à la doc pour les options de GROUP_CONCAT, qui sont DISTINCT, ORDER BY et SEPARATOR.

--
Antoun

Guide complet MySQL 5, par Antoine Dinimant, éd. MicroApplication
http://www.microapp.com/livre_mysql_7873.html
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/11/2006, 23h38   #3
Invité de passage
 
Inscription : juillet 2003
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 5
Points : 4
Points : 4
Envoyer un message via MSN à the_nul
ha super merci
the_nul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h48.


 
 
 
 
Partenaires

Hébergement Web