Petit souci avec une requete sur 2 tables
Résolu
eddie5150
-
meynoucha -
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 !
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
-
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 -
essaye ça:
SELECT personne.nom, personne.prenom, ville.id_ville FROM personne
join left ville WHERE personne.id_ville=ville.id_ville -
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 ! -
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 !