par
Spols » 27 sept. 2012, 15:56
Bonjour à tous,
Je cherche à faire une requète un peu spécial
voici une structure simplifié de mes tables
La table titre qui fait correspondre un titre à un identifiant unique
Code : Tout sélectionner
C1 C2
______
0 t1
1 t2
2 t3
3 t4
4 t5
5 t6
6 t7
7 t8
8 t9
9 t10
10 t11
Et la table parent qui fait correspondre à l'identifiant unique de la table titre à ce même identifiant de son parent
J'ai trouvé une requète :
SELECT t1.C2, t2.C2, t3.C2
FROM titre t1
LEFT JOIN parent p1 ON t1.C1 = p1.c1
LEFT JOIN parent p2 ON t1.C1 = p2.c2
LEFT JOIN titre t2 ON t2.C1 = p2.c1
LEFT JOIN parent p3 ON t2.C1 = p3.c2
LEFT JOIN titre t3 ON t3.C1 = p3.c1
WHERE p1.c1 <=> NULL
Qui me donne presque ce que je veux, c'est à dire ceci :
J'aimerais avoir pour chaque titre ayant des enfants une ligne suplémentaire suivi de NULL ceci donc
Question subsidiare, est il possible de s'affranchir du niveau maximum d'enfant. Dans cet exemple, il y a J'usquà 2 niveau, ce qui demande les 2 dernière paires de LEFT JOIN. Si j'ai un nombre plus grands voir inconnu ou illimité de possibilité de niveau d'enfant, est il possible de construire une requète qui me donnerai mon résultat?
Une boucle dans ma requète ?