SQL - Lister 2 tables meme si pas de présence dans la seconde

Répondre
burnedsoul
le 09/04/2008 à 17:00
burnedsoul
BOnjour,
Désolé d'avance si le titre n'est pas explicite ...

J'ai deux tables (personne, fonction) avec une clé secondaire id_fonction_personne dans la table personne qui pointe sur l'id de la fonction.

Je souhaiterais selectionner toutes les personnes et les fonctions sachant que certaines personnes n'ont pas encore de fonction.

d'où ma requete
"SELECT nom_personne from personnes, fonction where id_fonction_personne = id_fonction."

Problème : il va me lister toutes les personnes ayant bien un id_fonction_personne = id_fonction, mais me zapper les autres qui n'ont pas de fonction.

Comment faire ?
Webmaster de Clikmag http://www.clikmag.fr
Ludovic
le 09/04/2008 à 18:10
Ludovic
Salut burnedsoul,
Voila tu veux lister les personnes ayant une fonction , voici ajoute un critere !
"SELECT nom_personne from personnes, fonction where id_fonction_personne = id_fonction and id_fonction_personne !=''"
LA GLOBULE
le 09/04/2008 à 18:16
LA GLOBULE
burnedsoul : tu dois faire une jointure de type LEFT JOIN.

Exemple :

SELECT P.personne, F.fonction
FROM personne AS P
LEFT JOIN fonction AS F ON F.id = P.id_fonction_personne
burnedsoul
le 09/04/2008 à 18:21
burnedsoul
Ouaip, j'ai vu que c'était le seul moyen de passer outre la non prise en charge du OUTER par Mysql.

Le seul souci, c'est que mon exemple simplifie le probleme, et qu'en fait, j'ai également d'autres tables à inclure dans ma requete, ce qui me met une erreur, mais je vais continuer de tester de mon côté et si vraiment jvois pas de solutions, je reviendrais poster.

Merci pour les infos
Webmaster de Clikmag http://www.clikmag.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours