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 : Sélectionner tout - Visualiser dans une fenêtre à part
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