Je posséde dans une base MYSQL une table d'articles achetés avec les dates d'achats et les coordonnées mail des acheteurs, voici la structure de la table
id_article | article | date_achat | mail_achat
J'aurais souhaité savoir quels sont les articles achetés par les mêmes acheteurs...mais pour plusieurs périodes définies
Ex : Quels sont les mêmes personnes ayant acheté entre le 1er février et le 3 février...entre le 6 mars et le 13 mars ...Entre le 5 mai et le 1er juin.
Pour ce qui est de deux périodes j'ai trouvé la requête suivante ..et ça marche j'obtiens les acheteurs ayant acheté au moins deux fois pour les périodes données :
SELECT mail_achat , article FROM table WHERE date_achat [i]***1ere PERIODE*** [/i]BETWEEN '2009-02-01' AND '2009-02-03' AND mail_achat IN (select mail_achat FROM table WHERE date_achat [i]***2eme PERIODE*** [/i]BETWEEN '2009-03-06' AND '2009-03-13' ) GROUP BY mail_achat HAVING mail_achat >1
Mais quand je rajoute une période je n'obtiens plus aucun résultat
SELECT mail_achat , article FROM table WHERE date_achat [i]***1ere PERIODE*** [/i] BETWEEN '2009-02-01' AND '2009-02-03' AND mail_achat IN (select mail_achat FROM table WHERE date_achat [i]***2eme PERIODE*** [/i] BETWEEN '2009-03-06' AND '2009-03-13' ) AND mail_achat IN (select mail_achat FROM table WHERE date_achat [i]***3eme PERIODE*** [/i] BETWEEN '2009-05-05' AND '2009-06-01' ) GROUP BY mail_achat HAVING mail_achat >1
Si quelqu'un a une idée plus simple ...et surtout efficace alors merci d'avance!!!