Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jointure SQL table A + B

    18 mai 2018 à 16:42:11

    Bonjour,

    J'ai été longtemps dans le SQL avant de l'oublier quelques années. Mon nouveau travail m'oblige à revenir sur le SQL... et j'ai quelques petits trous de mémoires lol. (le comble pour les bases de données...)

    Bref.

    Mon problème est le suivant : disons que j'ai une table "Personnes" et une autre "Adresses". Evidemment chaque personne a son adresse.

    Mais il arrive qu'il manque des adresses !

    Donc quand je fais SELECT * FROM personnes, adresses WHERE adresses.id_personne = personnes.id

    Ca retourne les personnes QUI ONT une adresse. Mais moi je veux remplir un tableau avec toutes les personnes, quitte à laisser vide l'adresse (car inexistante dans la base de données)

    Vous voyez mon problème ? merci
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2018 à 16:55:05

      Bonjour,

      Alexol a écrit:

      Mon nouveau travail m'oblige à revenir sur le SQL

      Je te conseillerai donc de prendre de nouvelles habitudes et d'utiliser les jointures explicites (JOIN), ce qui va te permettre ici de faire une jointure externe (jointure "facultative") :

      SELECT *
      FROM
          personnes P
              LEFT JOIN adresses A
                  ON A.id_personne = P.id

      Au passage, je te conseille d'éviter le * dans le SELECT, mais plutôt de préciser exactement les colonnes dont tu as besoin.

      Enfin, pourquoi ne pas reprendre la lecture du cours MySQL (cf. ma signature) pour te rafraîchir la mémoire sur les bases des jointures ? ;)

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Jointure SQL table A + B

      × 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