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.