Bonjour,

Voici un récap' de la situation

Table client_t as _t
clientid | id_client | email | ...
123rez | i123456 | email@email.fr | ...
12t845 | i987654 | abc@abc.fr | ...
f853fr | profil1 | zzz@zzz.fr | ...
ad857d | i526547 | - | ...


Table query_reservation_sejour as _a (table contenant les commandes mises à jour via le champ 'statut')
id_client | id_reservation | statut | event_day | ...
i123456 | 1234567 | gin | 02-10-2013 | ...
i123456 | 1234568 | gin | 01-10-2013 | ...
i123456 | 1234569 | gin | 01-10-2007 | ...



Table query_reservation_sejour_2 _b (table contenant tous les enregistrements liés à toutes les commandes)
clientid | id_client | id_reservation | statut | montant_ttc_panier | ...
123rez | i123456 | 1234567 | gin | 02-10-2013 | 127,53 | ...
123rez | i123456 | 1234567 | gin | 25-09-2013 | 154,52 | ...
123rez | i123456 | 1234567 | ein | 01-09-2013 | 154,52 | ...
123rez | i123456 | 1234568 | gin | 01-10-2013 | 627,83 | ...
123rez | i123456 | 1234569 | gin | 01-10-2007 | 78,49 | ...

=========================

Ma recherche:
Toutes les commandes passées par des clients (après application filtres sur champ email et id_client) après le 01-10-2012 pour lesquelles le statut prend des valeurs spécifiques.

Résultat attendu:
_a.id_reservation | _t.email | _a.event_day | _b.montant_ttc_panier
1234567 | email@email.fr | 02-10-2013 | 127,53
1234568 | email@email.fr | 01-10-2013 | 627,83

Requête à optimiser car temps de traitement trop long:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT _a.id_reservation, _t.email, _a.event_day, _b.montant_ttc_panier
 
  FROM query_reservation_sejour as _a
  JOIN query_reservation_sejour_2 as _b on _b.id_reservation=_a.id_reservation and _b.event_day=_a.event_day
  JOIN client_t as _t on _b.clientid=_t.id
 
  WHERE (_b.statut = 'gin'
      OR _b.statut = 'ggr'
      OR _b.statut = 'din')
 
  AND _b.event_day > '2012-10-01'
 
  AND _t.id_client NOT REGEXP '^[a-hj-zA-HJ-Z]'
  AND _t.email LIKE '%@%'
  AND _t.email REGEXP '^[a-zA-Z0-9][+a-zA-Z0-9._-]*@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]*\\.[a-zA-Z]{2,4}$'
 
GROUP BY _a.id_reservation;
Merci par avance