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 :

Hiérarchie, récursivité table MySQL


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Hiérarchie, récursivité table MySQL
    Bonjour,
    Je suis tombé sur pleins de sujets similaires sur ce forum mais ne trouve pas, ou plutot n'arrive pas à faire ce que je recherche.

    J'ai une table comme ceci:

    | id | name | parent |
    ------------------------
    1 Tom 0
    2 Mat 1
    3 Léa 1
    4 Marie 2
    5 Max 4
    ....



    Mat et Léa sont donc enfants de Tom, Marie est la fille de Mat et Max le fils de Marie.
    Je souhaiterais trouver dans l'ordre toutes les descendances de Tom sur 3 niveaux (c'est à dire ses enfants, ses petits enfants et ses arrières petits enfants).

    Sachant que je connais le nombre de niveaux de la hiérarchie je devrais pouvoir utiliser des UNION ALL, mais je n'y arrive pas .

    Une petite aide serait très appréciée, merci par avance pour vos réponses.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    bonjour

    as tu lu ce petit-papier ?


    Notes : ta modélisation ne permet d'intégrer que les parents biologiques quid des familles recomposées

  3. #3
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Avec MySql et pas de requête récursive on est un peu limité.
    La modélisation n'aidant pas non plus ...

    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
     
    select a.*, 'niveau 0'
    from tst a
    where id = 1
    union all
    select b.*,  'niveau 1' 
    from tst b
    inner join tst a on a.id = b.parent 
    where a.id = 1
    union all
    select c.*,  'niveau 2'
    from tst c
    inner join tst b on b.id = c.parent
    inner join tst a on a.id = b.parent 
    where a.id = 1
    etc

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Citation Envoyé par punkoff Voir le message
    Bonjour,

    Avec MySql et pas de requête récursive on est un peu limité.
    La modélisation n'aidant pas non plus ...
    la "modélisation intervallaire" ne pourrait pas fonctionner sous MySQL ?
    à cause des PS à mettre en œuvre ? (curiosité )

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    ...
    Justement, je cherchais une solution similaire à CONNECT BY dans Oracle mais compatible avec ma bdd.
    1) CONNECT BY .. PRIOR est un truc spécifique à Oracle et limité en matière de récursivité.
    2) la norme SQL propose les requêtes récursives avec les CTE commençant par le mot clef WITH (depuis 1999)
    3) MySQL ne supporte pas les requêtes récursives. C'est une des très nombreuses limitations de ce pseudo SGBD R qu'est MySQL, en matière de langage SQL. A lire : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/

    Soit vous utilisez un vrai SGBDR comme PostGreSQL, soit vous faites des bidouilles, car même le mode intervallaire nécessite des vues et des proc stock, ce pourquoi MySQL est peu apte !

    A +

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    la "modélisation intervallaire" ne pourrait pas fonctionner sous MySQL ?
    à cause des PS à mettre en œuvre ? (curiosité )
    Euh si ca devrait marché, et ca aurai été surement plus simple d'exploiter le truc avec une telle modélisation.

    Ceci étant dit pour un arbre généalogique je ne sais pas ce qui aurait été le mieux, si cinephil passe par là ....

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2010, 10h41
  2. Erreur 145 sur table mysql
    Par ramses83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2007, 21h09
  3. Création de table MySQL
    Par dehbi dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/04/2004, 10h59
  4. [sgbd] Backup de tables MySQL auto, qqun sait ???
    Par Joelindien dans le forum SGBD
    Réponses: 31
    Dernier message: 26/05/2003, 17h59

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