Petit souci avec une requete sur 2 tables

Résolu
eddie5150 -  
 meynoucha -
Bonjour à tous,

Voila j'ai fait une requète sur 2 tables, cependant j'ai un petit souci :

SELECT personne.nom, prenom, ville.nom FROM personne, ville WHERE ville.id=personne.id_ville

Ceci me retourne donc ma liste de personnes, avec le nom de la ville à la place de l'id, cependant, si la ville n'est pas précisée dans la table personne (id_ville=0), cet enregistrement ne s'affiche pas, y'aurait-il un moyen de contourner cela ?

Merci d'avance !

4 réponses

  1. jee pee Messages postés 31869 Date d'inscription   Statut Modérateur Dernière intervention   9 974
     
    bonjour,

    la fonctionnalité que tu cherches s'appelle une jointure externe / outer join, dans sql

    avec le sql d'oracle la syntaxe serait de type :

    SELECT personne.nom, prenom, ville.nom FROM personne, ville WHERE ville.id (+) = personne.id_ville

    cdt
    1
  2. meynoucha
     
    essaye ça:
    SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

    join left ville WHERE personne.id_ville=ville.id_ville
    0
  3. eddie5150
     
    Merci à tous les 2,

    meynoucha, ta solution ne marche pas, ca me retourne une erreur de syntaxe, pourtant j'ai bien vérifié de pa avoir fait de fautes de frappe ou autres.
    jee pee, je vais regarder qu'est-ce que ca pourrait donner en mysql un outer join !
    0
    1. meynoucha
       
      SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

      left join ville on personne.id_ville=ville.id_ville
      0
  4. eddie5150
     
    Bon je viens de trouver la solution, en cherchant outer join,

    C'était bien ca, meynoucha mais il fallait mettre LEFT JOIN et non JOIN LEFT !

    SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

    LEFT JOIN ville WHERE personne.id_ville=ville.id_ville

    Merci encore !
    0