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
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?
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
Merci d'avance pour la réponse
Partager