Bonjour à tous !
Je suis nouveau sur ce forum en tant que posteur... jusqu'à maintenant je profitais de toutes ses ressources...
Mais je fait le pas de poster ce premier message parceque je butte sur un problème en SQL.
Je sais pas si cette rubrique est la bonne mais voilà mon problème...
Je possède une structure de base de données sous la forme d'un arbre. Voici le principe :
Je possède trois tables A, B et C qui sont hiérarchiques.
Des éléments C sont contenus dans des éléments B.
Et des éléments B sont contenus dans des éléments A.
Dans deux autres tables j'effectue les association entre ces niveaux.
Ci joint un schéma illustrant les propos.
Je voulais savoir comment éffectuer la requête permettant de trouver à partir d'un élément quelconque (A, B ou C) tous les éléments entrant dans sa chaîne.
Exemples :
# à partir de C2, je voudrais avoir les résultats suivants :
A1 | B2 | C2
A1 | B3 | C2
A2 | B3 | C2
#à partir de B4, les résultats :
A2 | B4 | C5
A2 | B4 | C6
A3 | B4 | C5
A3 | B4 | C6
Vous l'avez compris... de même à partir d'un élément Ax...
En fait la méthode que j'ai trouvé est de combiner avec la clause IN des sous requete SELECT mais je sais pas si c'est la meilleure méthode...
Au passage j'avais une autre question par curiosité (je sais pas si je dois ouvrir un nouveau post alors je continu ici...)
Donc, aAccesoirement je voudrais aussi savoir quel requête permettait d'obtenir le nom de la table à laquelle appartient un élément.
Bon là avec les noms que j'ai donné c'est évident, mais dans la réalité c'est pas A2, A3 etc...
Je sais que l'on peut éventuellement éffectuer une rêquete dans chacune des tables et de mémoriser laquelle retourne un résultat.
Mais existe-t-il une fonction qui donne le nom de la table d'un élément lorsque l'on effectue une recherche dans plusieurs table ? (un peu comme pour l'obtention du nom d'un champ en php avec mysql_num_fields()).
Merci beaucoup d'avance.
Et vive le partage !
Partager