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 !
A voir également:

4 réponses

jee pee Messages postés 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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
meynoucha
 
essaye ça:
SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

join left ville WHERE personne.id_ville=ville.id_ville
0
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
meynoucha
 
SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

left join ville on personne.id_ville=ville.id_ville
0
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