Menu

[MYSQL] Problème jointure champs vide [Résolu/Fermé]

riven - 24 juin 2008 à 10:24 - Dernière réponse :  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.
Afficher la suite 

5 réponses

sandul 3936 Messages postés jeudi 22 mai 2008Date d'inscription 8 octobre 2010 Dernière intervention - 24 juin 2008 à 10:27
0
Utile
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

++
nicos2101 984 Messages postés vendredi 28 décembre 2007Date d'inscription 8 juillet 2009 Dernière intervention - 24 juin 2008 à 10:28
0
Utile
bonjour, il faut mettre des crochet.
D'accord Nicos2101, mais je les mets où les crochets?
CapitainCo - 24 juin 2008 à 10:31
0
Utile
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
Utile
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é !