[MYSQL] Problème jointure champs vide

Résolu/Fermé
riven - 24 juin 2008 à 10:24
 riven - 24 juin 2008 à 11:07
Bonjour,

Je vous explique mon soucis :

Je fais une requete avec une jointure

table personne(id_pers,nom_pers,id_serv)
table service(id_serv,nom_serv)

Quand je selectionne toutes les personnes avec le nom du service :

SELECT * FROM personne p,service s WHERE s.id_serv=p.id_serv

La requete est executé correctement (pas d'erreur) mais aucun resultat.

Le problème étant le fait que une personne n'appartient pas forcement à un service !
Comment obtenir la liste complète des personnes ?

Merci

Cordialement.
A voir également:

4 réponses

sandul Messages postés 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
24 juin 2008 à 10:27
Salut,

Tu as besoin de ce que l'on appelle un outer join. Doc dispo ici: http://dev.mysql.com/doc/refman/5.0/fr/join.html

++
0
nicos2101 Messages postés 975 Date d'inscription vendredi 28 décembre 2007 Statut Membre Dernière intervention 8 juillet 2009 193
24 juin 2008 à 10:28
bonjour, il faut mettre des crochet.
0
D'accord Nicos2101, mais je les mets où les crochets?
0
Bonjour,
Tu fais une sous requete
SELECT *
FROM personne
WHERE id_serv in (SELECT id_serv from service) mais tu risque d'avoir des doublons
0
Je me suis trompé j'avais des résultats : juste les personnes qui sont affecté à un service or il me les fallait toutes.

Donc CapitainCo j'ai testé ta requete elle me donne le même resultat que celle que j'ai donné. (SELECT * FROM personne p,service s WHERE s.id_serv=p.id_serv )

Merci Sandul j'ai lu la doc trafiqué un peu la requete et ca à marché voici la requete qui fonctionne pour ceux qui aurait le même problème.

"SELECT * FROM personne
LEFT JOIN service ON personne.id_serv=service.id_serv"

Nicos2101 "bonjour, il faut mettre des crochet." << Euh oui je veux bien mais je les mets où ? J'attends ta réponse ça m'interresse tout de même.

Merci en tout cas de m'avoir aidé !
0