SQL 3 tables joint, resultat sur 1er jointure
Résolu
kisscool387
Messages postés
269
Statut
Membre
-
kisscool387 Messages postés 269 Statut Membre -
kisscool387 Messages postés 269 Statut Membre -
Bonjour,
Voilà, j'ai une requête avec 3 tables jointes (a, b et c).
a joint avec b, et b joint avec c
Je voudrais sortir le nombre de résultat trouvé sur la table b en tenant compte uniquement de la jointure entre a et b ?
Voici ma requête SQL :
sur cette requête, je classe les catégories de photos par nombre de commentaires posté sur toute les photos d'une catégorie.
Exemple : si G.cid = 15, je trouve 50 photos correspondante dans la table "GALLERY" et 200 commentaires posté sur ces 50 photos.
Si je fait un COUNT(F.sid) je trouve 200 ! alors que il y a pourtant que 50 photos, c'est a cause de la jointure avec la table "COMMENT" qui reli les 200 commentaires aux 50 photos, alors comment trouver le nombre de photos dans la catégorie ?
Je sais que ma demande est plutot compliqué, mais si quelqu'un connait bien le language SQL, et qu'il prend le temps de comprendre mon probléme, je suis sûr qu'il pourra m'aidé.
Je remerci d'avance toutes les personnes qui pourrai se pencher sur mon probléme, et s'il faut plus d'explication, n'hésitez surtout pas à me demander.
Voilà, j'ai une requête avec 3 tables jointes (a, b et c).
a joint avec b, et b joint avec c
Je voudrais sortir le nombre de résultat trouvé sur la table b en tenant compte uniquement de la jointure entre a et b ?
Voici ma requête SQL :
SELECT G.cid, F.date, MAX(F.url2), COUNT(DISTINCT F.sid), COUNT(C.im_id) FROM GALLERY_CAT_TABLE AS G LEFT OUTER JOIN GALLERY_TABLE AS F ON G.cid = F.cat LEFT OUTER JOIN COMMENT_TABLE AS C ON F.sid = C.im_id WHERE C.module = 'Gallery' AND G.cid != '25' GROUP BY G.cid ORDER BY COUNT(C.im_id) DESC LIMIT 0, 10
sur cette requête, je classe les catégories de photos par nombre de commentaires posté sur toute les photos d'une catégorie.
Exemple : si G.cid = 15, je trouve 50 photos correspondante dans la table "GALLERY" et 200 commentaires posté sur ces 50 photos.
Si je fait un COUNT(F.sid) je trouve 200 ! alors que il y a pourtant que 50 photos, c'est a cause de la jointure avec la table "COMMENT" qui reli les 200 commentaires aux 50 photos, alors comment trouver le nombre de photos dans la catégorie ?
Je sais que ma demande est plutot compliqué, mais si quelqu'un connait bien le language SQL, et qu'il prend le temps de comprendre mon probléme, je suis sûr qu'il pourra m'aidé.
Je remerci d'avance toutes les personnes qui pourrai se pencher sur mon probléme, et s'il faut plus d'explication, n'hésitez surtout pas à me demander.
A voir également:
- SQL 3 tables joint, resultat sur 1er jointure
- Ai suite 3 - Télécharger - Optimisation
- Resultat foot - Télécharger - Vie quotidienne
- Tables des matières word - Guide
- Picasa 3 - Télécharger - Albums photo
- Comment écrire 1er sur clavier - Forum Mail
3 réponses
je t'avoue que je n'ai pas tout lu, mais avec DISTINCT tu as essayé ???
SELECT DISTINCT G.cid, F.date, .....
Merci pour ta réponse k.mestdagh
Et oui, j'ai essayé avec DISTINCT, mais ça ne change rien malheureusement.
En faite, il me faudrait un COUNT() mais sans les doublons.
Et oui, j'ai essayé avec DISTINCT, mais ça ne change rien malheureusement.
En faite, il me faudrait un COUNT() mais sans les doublons.
Merci, mais si tu regarde ma requête, c'est d'éjà ce que j'avais fait, mais ça ne change rien.
Aprés plusieur essai, je pensse que c'est impossible.
La seul solution, c'est d'exécuter une 2éme requêtte pour trouver le nombre de photo dans une catégorie.
Mais je pense que pour le SQL 6, ça pourrai être une amélioration à prendre en compte, juste un count() sans doublons, ça serai merveilleux !
Aprés plusieur essai, je pensse que c'est impossible.
La seul solution, c'est d'exécuter une 2éme requêtte pour trouver le nombre de photo dans une catégorie.
Mais je pense que pour le SQL 6, ça pourrai être une amélioration à prendre en compte, juste un count() sans doublons, ça serai merveilleux !