MySQL Forums
Forum List  »  French

Jointures
Posted by: Nicola T
Date: January 24, 2009 11:24AM

Bonjour à tous,
Après plusieurs heures de tentatives, je me résous à poster sur ce forum.

J'ai cherché plusieurs solutions sur Google, et même en essayant, ça ne marche pas.

Contexte :

J'ai 3 tables : "randonneur", "participation", "randonnee". La table participation est une table d'association entre "randonneur" et "randonnee".

Chaque randonneur peut participer aux différentes randonnées. Une randonnée est décomposée en 3 boucles (petite, moyenne, grande), à l'aide du champ BOUCLE_PARTICIPATION qui est de type ENUM.

Mon but est de connaître le nombre de femmes ayant participé à chaque boucle de chaque randonnée (donc combien de femmes ont participé à la randonnée 1 en réalisant la petite boucle ? la moyenne boucle ? et la grande boucle ?).

Voici ma requête :

select `participation`.`ID_RANDONNEE`, `participation`.`BOUCLE_PARTICIPATION`, count(*)
from `participation`
left join `randonneur`
using(`ID_RANDONNEUR`)
where `randonneur`.`SEXE_RANDONNEUR`='Femme'
group by `participation`.`ID_RANDONNEE`, `participation`.`BOUCLE_PARTICIPATION`;

Le problème qui se pose est que cette requête me donne bien ces valeurs, sauf que j'aimerais également que les boucles où aucune femme n'a participé soient visibles quand même avec une valeur à 0.

Sur le net, j'ai vu qu'il fallait apparemment utiliser un LEFT JOIN, ce que j'ai fait, mais qui continue de ne rien me donner.

Voici ce que me donne la requête actuellement :

ID_RANDONNEE BOUCLE_PARTICIPATION count(*)
15 Petite 2
15 Moyenne 1
15 Grande 1
16 Petite 1
16 Grande 1
17 Petite 1
18 Petite 1
18 Grande 1

Comme vous pourrez le constater, pour certaines randonnées, les boucles où aucune femme n'a participé sont masquées. C'est bien ces lignes que je souhaiterais rendre visibles dans le résultat de la requête, avec la valeur 0 au niveau du count(*).

Si jamais je n'avais pas été assez clair dans mes propos, voici le résultat que j'aimerais obtenir :

ID_RANDONNEE BOUCLE_PARTICIPATION count(*)
15 Petite 2
15 Moyenne 1
15 Grande 1
16 Petite 1
16 Moyenne 0
16 Grande 1
17 Petite 1
17 Moyenne 0
17 Grande 0

18 Petite 1
18 Moyenne 0
18 Grande 1

En espérant avoir été assez explicite sur mon problème.

En vous remerciant par avance.

Nico.



Edited 1 time(s). Last edit at 01/24/2009 11:29AM by Nicola T.

Options: ReplyQuote


Subject
Views
Written By
Posted
Jointures
6645
January 24, 2009 11:24AM
3362
January 24, 2009 11:54AM
3288
January 24, 2009 12:00PM
3251
January 24, 2009 02:19PM
3362
January 25, 2009 03:19AM
3216
January 25, 2009 07:55AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.