Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1498 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Transformer une jointure en liste (GROUP BY ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Transformer une jointure en liste (GROUP BY ?)

n°1308745
Dost67
Posté le 18-02-2006 à 17:45:20  profilanswer
 

SELECT I.identite, M.intitule
FROM intervenants I, intervenants_modules IM, modules M
WHERE I.numero = IM.numero_intervenant AND M.numero = IM.numero_module
 
Intervenants -> numero
                identite
Modules -> numero
           intitule
Intervenants_modules -> numero_intervenant
                        numero_module


 
Le problème c'est qu'au final j'ai :
Intervenant 1 - Module 1
Intervenant 1 - Module 2
Intervenant 1 - Module 3
...
 
Et que je voudrais transformer ça en liste :
Intervenant 1 - (Module 1, Module 2, Module 3)
 
Si c'est possible ?
 
Merci d'avance.

mood
Publicité
Posté le 18-02-2006 à 17:45:20  profilanswer
 

n°1308746
Sebou77
French Tech powaa :-)
Posté le 18-02-2006 à 17:48:18  profilanswer
 

bah comme tu le dis c'est avec un group by sur intervenant
T'as essayé ?

n°1308760
Dost67
Posté le 18-02-2006 à 18:27:26  profilanswer
 

Sebou77 a écrit :

bah comme tu le dis c'est avec un group by sur intervenant
T'as essayé ?


 
Si je fais un GROUP BY (I.identite) ça donne
Intervenant 1 - Module 1
Intervenant 2 - ...
...
 
Ca ne donne pas une liste, en tout cas ça n'en donne pas une avec MySQL.

n°1309520
jeoff
Posté le 20-02-2006 à 11:22:28  profilanswer
 

Si c'est juste une histoire de présentation des résultats (colonne vers liste), inutile de chercher. Les bases de données font de l'extraction, pas de la mise en forme.

n°1309523
skeye
Posté le 20-02-2006 à 11:26:02  profilanswer
 

Sebou77 a écrit :

bah comme tu le dis c'est avec un group by sur intervenant
T'as essayé ?


 
euh non, pas du tout.[:dawa]
Suivant les SGBD tu risques même de te faire insulter, à faire ça.[:petrus75]


---------------
Can't buy what I want because it's free -
n°1309525
skeye
Posté le 20-02-2006 à 11:27:03  profilanswer
 

jeoff a écrit :

Si c'est juste une histoire de présentation des résultats (colonne vers liste), inutile de chercher. Les bases de données font de l'extraction, pas de la mise en forme.


 
pluzun. Le SGBD te permet de récupérer des données, à toi de traiter ce qu'il te file pour l'afficher comme tu le souhaites.[:dawao]


---------------
Can't buy what I want because it's free -
n°1309546
cinocks
Posté le 20-02-2006 à 12:17:08  profilanswer
 

Dost67 a écrit :

SELECT I.identite, M.intitule
FROM intervenants I, intervenants_modules IM, modules M
WHERE I.numero = IM.numero_intervenant AND M.numero = IM.numero_module
 
Intervenants -> numero
                identite
Modules -> numero
           intitule
Intervenants_modules -> numero_intervenant
                        numero_module


 
Le problème c'est qu'au final j'ai :
Intervenant 1 - Module 1
Intervenant 1 - Module 2
Intervenant 1 - Module 3
...
 
Et que je voudrais transformer ça en liste :
Intervenant 1 - (Module 1, Module 2, Module 3)
 
Si c'est possible ?
 
Merci d'avance.


 
 
tu ne peux pas. C'est du post-traitement. Donc tu ordonnes ton resultat par intervenant, et en parcourant les resultats tu créés ta liste de module. A chaque changement d'intervenant tu repars sur une nouvelle liste de modules.


---------------
MZP est de retour
n°1309952
Dost67
Posté le 20-02-2006 à 19:46:28  profilanswer
 

OK, comme ça c'est clair. Donc si je veux une liste en sortie il faut que je stocke des listes dans la base de données ou alors que je transforme ces infos en liste avec du PHP par exemple.

n°1310033
mrbebert
Posté le 20-02-2006 à 21:00:18  profilanswer
 

Quel SGBD ?
Avec MySQL, il y a la fonction "GROUP_CONCAT" qui permet de faire ca :)

n°1310503
Dost67
Posté le 21-02-2006 à 13:35:28  profilanswer
 

mrbebert a écrit :

Quel SGBD ?
Avec MySQL, il y a la fonction "GROUP_CONCAT" qui permet de faire ca :)


 
Je l'ai fait avec MySQL mais c'est un exo pour l'école et là bas on utilise DB2.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Transformer une jointure en liste (GROUP BY ?)

 

Sujets relatifs
requête SQL dans un formulairePb de mise ajour SQL...
[resolu] Liste dynamiques liées, pb de récupération de variablefaire une liste avec SQL
Transformer un executable VB standard en Active X[SQL Server 2005 ] Probleme pour lancer une instance
[SQL SERVER][Synatxe en rouge non comprise]liste formatée?
Exporter une base MS SQL Server? 
Plus de sujets relatifs à : [SQL] Transformer une jointure en liste (GROUP BY ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR