Petit souci avec une requete sur 2 tables

Résolu/Fermé
eddie5150 - 11 juin 2008 à 17:40
 meynoucha - 11 juin 2008 à 18:09
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

jee pee Messages postés 40431 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 7 novembre 2024 9 417
11 juin 2008 à 17:47
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
essaye ça:
SELECT personne.nom, personne.prenom, ville.id_ville FROM personne

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

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