IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Arborescence dans une base de donnée


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut Arborescence dans une base de donnée
    Salut

    j ai dans ma base de donnée un table representant une arborescence de ce type:

    ID : id de l'element
    ID_parent : l'id de l'element parent
    Nom : le nom de l'element

    dans une autre table on a des enregistrement qui son ratache a un element.

    comment faire en sql pour recupere l'ensemble des enregistrements en fonction de l'element ...avec les enregistrement qui font partie d'un sous-element

    ex :

    1 (elem)
    -1.1(elem)
    -1.1.1(elem)
    -1.1.1.1
    -1.1.1.2
    -1.1.2(elem)
    -1.2(elem)
    -1.3(elem)

    par exemple si je veux recupere les enregistremlent descendant de "1" donc le resultat 1.1.1.2 et 1.1.2

    ps : sinon si vous avez un autre moyen pour represente un arborescence .....

    thx @+

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 150
    Points : 121
    Points
    121
    Par défaut
    C'est peut-être une solution simpliste, mais voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ID, ID_PARENT, NOM FROM taTable WHERE ID LIKE "1%";
    Ceci fonctionne avec oracle si tes champs sont des chaînes de caractères

    Bon courage
    Nadine

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Pour gérer les arborescences :

    1) avec ORACLE : CONNECT BY
    2) Norme SQL3 (SQLServer 2005 par exemple) : WITH RECURSIVE
    3) Tous les moteurs : représentation intervallaire (cherche sur ce site)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Si tu n'as que 2 niveaux 1 simple auto-jointure suffit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT n.id,
               f.id
    FROM    table n
    INNER JOIN table f
    ON        n.id = f.id_parent
    Sinon si ton moteur le permet tu utilises des fonctions récursives.
    Si tu es sous Oracle regardes dans la FAQ. Médiat y a posté 1 topo a ce sujet.
    Si tu es sous DB2 tu as 1 exemple ici : http://www.developpez.net/forums/sho...44&postcount=6 qui peut également te servir si tu es sous SQL SERVER 2k5

    sinon regardes les articles de SQLPro sur les représentations intervallaires

    A +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  2. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54
  3. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27
  4. [SYBASE]Libérer espace libre dans une base de données ?
    Par le_parrain dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 09h36
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo