-
Problème de requête
Bonjour,
Je suis débutant en MySQL et je ne sais pas si c'est mon manque d'expérience ou c'est parce que ce n'est pas faisable via MySQL.
Voici mon problème :
J'ai xx serveurs avec xx éléments
server1 A B C D
server2 E B F G
server3 U P M D
server4 V N Y P
server5 X W T Q
Des éléments lient indirectement ces serveurs, si on touche à un des serveurs 1 2 3 ou 4 on impacte automatiquement tous les autres serveurs.
server1 server2 B
server1 server3 D
server3 server4 P
server5 aucun lien
dans ma table
élément hostname
A server1
B server1
C server1
D server1
E server2
B server2
F server2
G server2
U server3
P server3
M server3
D server3
V server4
N server4
Y server4
P server4
X server5
W server5
T server5
Q server5
j'aimerais obtenir le résultat suivant,
hsotname depency
server1 "server2 server3 server4"
server2 "server1 server3 server4"
server3 "server2 server1 server4"
server4 "server2 server3 server1"
server5 ""
Pensez-vous que cela soit possible ?
J'ai essayer avec group_concat() mais au mieux j'arrive à regrouper les éléments avec un lien direct mais impossible de faire un lien avec les éléments indirects.
Merci d'avance pour votre aide
-
Bonjour,
Il te faut écrire une requête récursive. Le problème étant qu'en MySQL ce n'est pas possible (sauf si il y a eu des modifications dans les dernières versions).
Tu n'as donc que des solutions de contournement :
- Si tu connais le niveau max de récursion, écrire une splendide requête en simulant la récursion à la main.
- Faire un traitement en pl/sql
- Faire le traitement dans ton langage appelant (probablement la meilleure solution dans ton cas)
- Changer de SGBD ;)
Bon courage.
-
Bonjour Drizzt [Drone38],
Après avoir passé 1 semaine à essayé de faire quelque-chose d'impossible, la piste PL de Oracle m'a emmené vers les Procédures de MySQL.
En espérant que le langage procédural soit assez riche pour faire ce que je veux.
Merci