Bonjour,
Je suis en train de développer un outil pour mon travail et je dois à présent effectuer une requête sql pour récupérer mon arborescence.
Je m'explique j'ai dans ma base de données plusieurs tables:
Une table
-projet qui contient le nom et les données globales de plusieurs projet.
-AL qui represente un lien entre projet et niveau
-niveau qui représente mon arborescence (un niveau peut avoir un ou plusieurs enfants)
-article qui correspond est contenu dans un niveau
projet:
niveau:
al:
Pour l'instant j'ai fait cette requète:
Le soucis est que cette requète me renvoie même la ligne avec l'id 24 alors qu'elle n'est affecté à aucun projet?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 SELECT * FROM article INNER JOIN niveau ON article.article_id = niveau.article_id INNER JOIN arborescence_logistique ON arborescence_logistique.niveau_id IN (WITH RECURSIVE tree (niveau, id) AS (SELECT niveau_id, parent_id FROM niveau N UNION ALL SELECT niveau_id, parent_id FROM niveau V INNER JOIN tree t ON t.id = V.niveau_id) SELECT niveau FROM tree WHERE id IS NULL ) INNER JOIN projet ON arborescence_logistique.projet_id = projet.projet_id WHERE projet.nom = :projet;
Ah et :projet = Mini projet test
Je viens de remarquer un autre soucis aussi j'aimerai recevoir comme résultat de requète un tableau ordonné en fonction de mon arborescence.
Donc le niveau mère tout en haut suivi du fils1 et de ses fils puis le fils 2 suivi de ses fils et etc or avec cette requète le résultat est trié par niveau_id.
Exemple du tableau:
J'ai bien conscience qu'avec ce cours résumé il doit y avoir des tas de choses à clarifier donc n'hésitez pas à me demander les informations manquantes.
Voilà j'attends avec impatience vos réponses et vous remercie dès à présent de toute aide que vous saurez m'apporter.
Partager