[mysql 5] requete avec count+ having + group by
Bonjour,
j'aimerai j'ai une base de données composé d'une table user et de x tables d'archive de sorties(une table par année).
dans les table d'archive de sorties, j'enregistre des information sur la date de sortie et , l'id du user qui est sorti. Je cherche a retrouver les users qui sont sont sortie entre 2 et 10 fois dans une période définie.
voila a requête que j'ai mis en place
Code:
1 2 3 4 5 6 7 8
| SELECT u.nom,
( COUNT(a1.id_user) + COUNT(a2.id_user)) AS nb_sortie
FROM user u
LEFT JOIN a_2007 a1 ON (a1.id_user=u.id_user) AND a1.date_sortie>='2007-02-1'
LEFT JOIN a_2008 a2 ap5 ON (a2.id_user=u.id_user) AND a2.date_sortie<='2008-09-31'
GROUP BY a1.id_user, a2.id_user
HAVING (nb_sortie>=2 AND nb_sortie<=10)
ORDER By nb_sortie desc |
cette requête marche sur 2 anq mais au delà les temps de calcul sont énormes, y a t'il un moyen d'optimiser ce type de recherche?
Merci d'avance pour la réponse