8791 sujets

Développement web côté serveur, CMS

bonjour, j'ai quelques difficultés avec les jointures avec plus deux tables, pouvez vous m'aider a corriger ma syntaxe? merci par avance.

mon code a 3 tables qui ne fonctionne pas :
$reponse = mysql_query("SELECT cbo_annonces.a_id, cbo_annonces.denomination, cbo_annonces.urgent, cbo_annonces.type, cbo_annonces.domaine, cbo_annonces.cip, cbo_membres.nom, cbo_membres.prenom, cbo_membres.ville, cbo_membres.departement, cbo_membres.region, cbo_annonces.id_user, cbo_annonces.utiliser_avant, cbo_annonces.quantite, cbo_annonces.prix, cbo_annonces.remise, AVG(cbo_evaluations.note) as moyenne, COUNT(cbo_evaluations.note) AS nb FROM cbo_membres, cbo_annonces, cbo_evaluations WHERE cbo_membres.id = cbo_evaluations.id_mb_sujet AND cbo_membres.id = cbo_annonces.id_user $filtre_final ORDER by $orderby $sens_order");



voici mes deux initiaux codes qui marche parfaitement mais que j'ai voulu fusionner en une seule requête histoire d'économiser les ressources (en l'état actuel la deuxième requête est dans une boucle )
$reponse = mysql_query("SELECT cbo_annonces.a_id, cbo_annonces.denomination, cbo_annonces.urgent, cbo_annonces.type, cbo_annonces.domaine, cbo_annonces.cip, cbo_membres.nom, cbo_membres.prenom, cbo_membres.ville, cbo_membres.departement, cbo_membres.region, cbo_annonces.id_user, cbo_annonces.utiliser_avant, cbo_annonces.quantite, cbo_annonces.prix, cbo_annonces.remise FROM cbo_membres, cbo_annonces WHERE cbo_membres.id = cbo_annonces.id_user $filtre_final ORDER by $orderby $sens_order");


code pour la 3eme table
$reponse_eval =mysql_query("SELECT AVG(note) as moyenne, COUNT(1) AS nb FROM cbo_evaluations WHERE id_mb_sujet='".$donnees['id_user']."'");

Modifié par f-webconcept (27 Aug 2008 - 01:37)
Salut Fred,

il est impossible de fusionner tes requêtes car elles ne sont pas de même type : la première correspond à une jointure et la seconde à un groupage (ce qui serait plus net si elle était effectuée sur plusieurs colonnes car elle aurait exigé l'utilisation de GROUP BY) et c'est d'ailleurs pour cette raison qu'elle est dans une boucle.

La bonne nouvelle c'est que de toutes façons ça n'aurait en aucun cas économisé des ressources. Smiley cligne

A+
Modifié par Heyoan (21 Aug 2008 - 13:58)