|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : mai 2005 Messages : 178 ![]() |
Bonjour à tous,
je souhaiterais "normaliser" une table, c'est à dire passer les colonnes en lignes. Exemple: table source: id | Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne n 1 | blabla1 | toto1 | titi1 | tata1 | ... | tete1 2 | blabla2 | toto2 | titi2 | tata2 | ... | tete2 3 | blabla3 | toto3 | titi3 | tata3 | ... | tete3 table cible: id | Champ normalisé | Valeur 1 | Colonne 1 | blabla1 1 | Colonne 2 | titi1 1 | Colonne 3 | tata1 1 | Colonne 4 | tete1 2 | Colonne 1 | blabla2 2 | Colonne 2 | titi2 2 | Colonne 3 | tata2 2 | Colonne 4 | tete2 j'ai cherché sur Google et j'ai trouvé la solution du union. dans l'exemple ci-dessus ca donnerait: Code :
une idée ? Merci par avance!
__________________
laloune éternel apprenti développeur (pas de formation) "C'est le jeu ma pauvre Lucette" |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Bonjour,
tu peux utiliser un script php par exemple te retournant les colonnes de ta table : Code php :
En sortie de boucle, le tableau $tab contient donc la liste de tes champs, reste plus qu'a générer un UNION dynamique avec
__________________
Je ne réponds pas aux questions envoyées par mp |
||
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 178 ![]() |
Bonjour Madfrix,
merci pour ta réponse, en fait j'aurais besoin d'une solution pur SQL dans la mesure où j'utilise un ETL pour lancer ma requête sur la base MySQL. s'il n'y a pas de solution pur SQL je passerai effectivement par du code (mais c'est moins bien pour des raisons de performances) A+
__________________
laloune éternel apprenti développeur (pas de formation) "C'est le jeu ma pauvre Lucette" |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Alors désolé je vois pas comment faire cela sinon
Peut être via une procédure stockée...
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() |
Bonjour,
Citation:
Il y a des tas de choses qu'une base de données SQL fera toujours de manière beaucoup moins efficace qu'un programme ad-hoc. De manière générale, le SQL est sensé être efficace pour tous ce qui retourne d'une logique relationnelle. Là on est typiquement dans un besoin qui sort de cette logique et pour lequel il faudra faire de la gymnastique pour parvenir à trouver une solution SQL.
__________________
www.nudge.org Surveillez et optimisez vos applications Java |
|
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Citation:
Il faut, éventuellement, essayer de passer par des fonctions utilisateurs, mais MySQL n'est pas très avancé en la matière. ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 178 ![]() |
ok merci beaucoup, je vais chercher par là.
__________________
laloune éternel apprenti développeur (pas de formation) "C'est le jeu ma pauvre Lucette" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com