pour simplifier, j’ai 2 tables: une qui contient du materiel et une autre qui contient du personnel.
il y a une relation entre les 2, un materiel est associé à une personne.
je dois afficher par exemple tout les graveurs, je fais donc:
select m.nom_matos,p.nom from materiel m, personnel p
where m.nom_matos = ‘graveur’
and m.id_pers = p.id_pers
le truc c’est que j’ai du materiel qui n’est pas encore attribué à quelqu’un, j’aimerai don qu’il m’affiche tout les graveurs et que s’il n’y a pas de personne associée à ce matos, bah il l’affiche quand meme.
en gros la condition “m.id_pers = p.id_pers” faudrait qu’elle soit optionnelle, si elle est valide je récupère le nom, si elle ne l’est pas , le champ p.nom serait alors vide mais on aurait quand meme le tuple.
me suis-je bien fait comprendre, moi meme g du mal [:matleflou]
ps: j’ai essayé en 2 requetes, j’ai des infos qui se recoupent et le serveur se prend une charge monstrueuse
j’ai tenté autre chose qu’une jointure externe, bilan: j’ai vautré la machine, 10 minutes à attendre pour qu’elle s’éteigne afin de ne pas perdre les données et j’ai fini sur un écran bleu [:matleflou]
j’utilise mysql 4.0.24, je vais peut etre devoir l’upgrader pour pouvoir faire des jointure externe ?
je vais relire mes docs sur les jointures ce soir…
en gros c’est ça, sauf que j’ai 2 cas (le materiel est à personne et n’est donc pas dans un service) et qu’il y a des tables intermediares pour récupérer le nom de la presonne et le service.
“…and the word OUTER may be added after the word LEFT or RIGHT in the last two examples - it’s provided for ODBC compatability and doesn’t add an extra capabilities…”
Le mot-clé “OUTER” n’est là que assurer la compatibilité avec ODBC :jap:
Donc pour MySQL, un “LEFT JOIN” ou un “RIGHT JOIN”, c’est une jointure externe.