dredd Posté 28 Janvier 2005 Posté 28 Janvier 2005 Bonjour, Non informaticien à la base, j'ai un problème précis avec une requéte : $req_sql="select maj.date_cde, maj.num_com, articles.id_article from maj, articles, sites_annu AS direct, dossier_assoc, sites_annu AS integre where articles.num_com=maj.num_com and articles.id_article=direct.id and (direct.id=dossier_assoc.dossier OR direct.id=dossier_assoc.faq) and (dossier_assoc.faq=integre.id or dossier_assoc.dossier=integre.id) and (direct.id_auteur='17' or integre.id_auteur='17')"; Cette requete fonctionne, sauf une partie : Si dans ma table dossier_assoc, je n'ai aucune donnée dans les champs dossier et faq correspondant à direct.id, la requete ne remonte rien, même (et c'est la qu'est le problème), si j'ai des données à remonter de ma table "direct" (car satisfaisant à la condition "direct.id_auteur='17'". Il me semble comprendre, avec mes pauvres compétences et les quelques bouquins potassés, qu'il faudrait faire une 'jointure externe gauche' pour prendre en compte les données de la première partie de la jointure(avant le "and (direct.id=dossier_assoc.dossier OR direct.id=dossier_assoc.faq")) même si on n'a pas de données dans la deuxième partie, mais je ne vois pas comment ecrire cela avec 4 tables liées les unes aux autres. J'ai essayé plein de truc savec des INNER JOIN et LEFT JOIN, mais j'ai toujours des messages d'erreur du type 'not unique table/alias..." Merci de votre aide
darksword Posté 29 Janvier 2005 Posté 29 Janvier 2005 tu peux regarder avec LEFT OUTER JOIN La ca devrais marcher
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant