Partage
  • Partager sur Facebook
  • Partager sur Twitter

SQL : afficher chaque enfant + grands parents

sur base de foreign keys et join

    3 juillet 2021 à 15:39:21

    Bonjour !

    Je suis un cours pas à pas sur les SELECT en SQL qui introduit les :

    COUNT
    DISTINCT
    WHERE (+ IN/EXISTS)
    GROUP BY (+HAVING)
    INNER/LEFT OUTER JOIN

    A l'aide de ça (et de ça seulement), j'essaye d'afficher chaque petit enfant et ses 4 grands parent depuis deux tables:

    1) "personnes" (id, prenom, nom) 
    2) "relations" (parent,enfant)

    Mais je bloque.
    J'arrive à afficher chaque parent et chacun de ses enfants comme ceci:

    SELECT p.nom, p.prenom,e.nom,e.prenom
    FROM personnes p
    INNER JOIN relations ON p.id = relations.parent
    INNER JOIN personnes e ON e.id = relations.enfant;

    Mais pour afficher les 4 grands parents de chaque petit enfant (une ligne = petit enfant + GP1+GP2+GP3+GP4), je suis dépassé par le niveau d'abstraction.

    J'arrive à afficher un grand parent par ligne mais pas les 4 dans la même ligne.

    SELECT e.nom, e.prenom, gp.nom, gp.prenom  
    FROM relations p_e
    INNER JOIN relations gp_p ON gp_p.enfant = p_e.parent 
    INNER JOIN personnes gp ON gp.id = gp_p.parent 
    INNER JOIN personnes e ON e.id = p_e.enfant
    ORDER BY e.id;

    Vos lumières m'éclaireraient beaucoup.

    Merci !

    -
    Edité par sasquatch 4 juillet 2021 à 12:24:08

    • Partager sur Facebook
    • Partager sur Twitter

    SQL : afficher chaque enfant + grands parents

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown