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 :

relation Parent/Enfant sur la meme table et requete SQL


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 103
    Points
    103
    Par défaut relation Parent/Enfant sur la meme table et requete SQL
    Bonjour,
    j'ai une table individu, comme suit:

    INDIVIDU
    -------------
    ID_individu
    ID_mere
    Date_naissance

    ID_mere est en fait une clef etrangere de la table, et ID_mere et ID_individu sont liés. Une mere correspond elle aussi a un individu.
    Comment recuperer avec une requete SQL, la date de naissance d'un individu, et la date de naissance de sa mere ?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 103
    Points
    103
    Par défaut
    Et meme si j'ai deux tables comme suit :

    INDIVIDU
    ------------
    Id_individu
    Date_naissance

    et une autre table

    FILS_DE
    --------------
    Id_mere
    Id_fils

    ou ID_mere et ID_fils correspondent a des enregistrements de la table Individu
    Meme question, comment faire ma requete pour avoir la date de naissance de la mere et du fils sur une meme ligne, obtenu par une requete SQL.

  3. #3
    hdd
    hdd est déconnecté
    Membre régulier Avatar de hdd
    Profil pro
    Inscrit en
    Février 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2004
    Messages : 105
    Points : 74
    Points
    74
    Par défaut
    Sur une seule table, ça doit être du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select i1.*,i2.*
    from individu i1 join individu i2 on i1.id_mere=id2.id_individu
    i1 contiendra les données du fils, et i2 celles de la mère

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    C'est à ça que servent les alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select    PERSONNE.ID_INDIVIDU    as ID_PERSONNE
        ,    PERSONNE.DATE_NAISSANCE    as NAISSANCE_PERSONNE
        ,    MERE.DATE_NAISSANCE        as NAISSANCE_MERE
    from    INDIVIDU    as PERSONNE
        inner join
            INDIVIDU    as MERE
            on    PERSONNE.ID_MERE = MERE.ID_INDIVIDU
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Avec ta deuxième structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select    FILS.ID_INDIVIDU    as ID_FILS
        ,    FILS.DATE_NAISSANCE    as NAISSANCE_FILS
        ,    MERE.DATE_NAISSANCE    as NAISSANCE_MERE
    from    FILS_DE    
        inner join
            INDIVIDU    as FILS
            on    FILS_DE.ID_FILS = FILS.ID_INDIVIDU
        inner join
            INDIVIDU    as MERE
            on    FILS_DE.ID_MERE = MERE.ID_INDIVIDU
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 103
    Points
    103
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. Relation sur une meme table
    Par alexandre92100 dans le forum Doctrine2
    Réponses: 7
    Dernier message: 10/02/2012, 15h12
  2. [Doctrine] Relation many to many sur la même table
    Par hmartin.fr dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 01/09/2011, 09h41
  3. Migration table Mysql avec relation parent/enfant
    Par danidan75 dans le forum Installation, migration et administration
    Réponses: 0
    Dernier message: 05/08/2011, 22h38
  4. Requete sur la meme table
    Par krak70 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 09h59
  5. Association 1:n sur une meme table
    Par dafalcon dans le forum Décisions SGBD
    Réponses: 15
    Dernier message: 27/04/2005, 09h07

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