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:
Merci par avance
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;
Partager