Partage
  • Partager sur Facebook
  • Partager sur Twitter

MySql - Récupérer des infos par jointure

Sujet résolu
    17 janvier 2018 à 13:37:11

    Bonjour,

    Je me retrouve bloqué par un problème que je pensais tout bête... mais en fait, c'est moi qui suis plus bête que lui. :)

    J'ai une table :
    "membre" (id, nom, prenom)
    et une autre ou je mets en relation deux membres
    "hebergement" (id, heberge_id, hebergeur_id).

    Je me demandais comment obtenir en une seule requête une réponse qui me donnerait :
    prenom, nom de l'heberge et prenom, nom de l'hebergeur.
    Ex : Jean Dupont Pierre Durand 

    En effet, avec la jointure que je fais, je ne peux obtenir que l'un des deux :
    SELECT prenom, nom FROM membres INNER JOIN hebergement ON membres.id = hebergement.heberge_id 
    Du coup, je passe par une deuxième requête pour avoir le deuxième nom (ici, l'hébergeur).

    Est-ce qu'on peut faire mieux que ça (j'ai essayé UNION mais ça revient à faire deux requêtes pour ma réponse) ?

    Merci

    -
    Edité par Pafacil 17 janvier 2018 à 13:37:44

    • Partager sur Facebook
    • Partager sur Twitter
      17 janvier 2018 à 15:45:01

      Bonjour,

      Il faut utiliser des alias pour faire deux jointures sur la même table :

      SELECT
      	H.id,
      	M1.nom AS heberge,
      	M2.nom AS hebergeur
      FROM
      	hebergement H
      		INNER JOIN membre M1
      			ON H.heberge_id = M1.id
      		INNER JOIN membre M2
      			ON H.hebergeur_id = M2.id
      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        17 janvier 2018 à 17:14:12

        Yeeeehaaa !

        Merci Benzouye !

        Voilà ce qu'il va falloir que j'aille rebosser.

        • Partager sur Facebook
        • Partager sur Twitter

        MySql - Récupérer des infos par jointure

        × 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