Bonjour,
J'ai besoin de votre aide pour formuler une requête.
Je m'explique : J'ai une table NOEUDS qui contient la structure d'un arbre dont voici les champs :
ID_NOEUD, ID_PERE, ID_DOCUMENT_ASSOCIE, TYPE_DOCUMENT, RANG
ID_PERE nous donne l'id du pere qui est lui meme un id de la table NOEUDS.
On a donc une table pour stocker un arbre.
ID_DOCUMENT_ASSOCIE nous donne l'id du document associé à ce noeud, TYPE_DOCUMENT nous donne le type de document (soit 1 ou 2). RANG n'est pas important dans notre question.

Mon but est de recupérer les enfants d'un noeud avec les informations ID_NOEUD ainsi que le titre du document associé à ce noeud. Le probleme, c'est que la table qui contient le titre du document dépend justement du type de document...Dans la premiere table de document (type 1), le champs titre est "INTITULE" et dans la deuxieme (type 2), c'est "TITRE".

J'ai essayé cette requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
select distinct noeud.id_noeud, noeud.id_document_associe, noeud.type_document, noeud.rang, doc1.intitule, doc2.titre
from noeuds noeud, documents_1 doc1, documents_2 doc2
where noeud.id_pere = 13965
and (doc1.id_document = noeud.id_document_associe or doc2.id_document = noeud.id_document_associe)
order by rang;
Elle fonctionne mais ne donne pas le bon resultat.

En fait ce que je veux, c'est afficher soit doc1.intitule ou doc2.titre suivant la valeur de noeud.type_document

Merci de notre aide !