Signaler

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

Posez votre question riven - Dernière réponse le 24 juin 2008 à 11:07 par riven
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.
Utile
+0
plus moins
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

++
Utile
+0
plus moins
bonjour, il faut mettre des crochet.
riven- 24 juin 2008 à 11:07
D'accord Nicos2101, mais je les mets où les crochets?
Utile
+0
plus moins
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
Utile
+0
plus moins
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é !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !