Mysql 9月份买了东西,但没有';10月份我什么也不买
我有这张桌子。我需要一个查询的帮助,该查询只显示在9月份买了东西但在10月份没有买任何东西的客户IDMysql 9月份买了东西,但没有';10月份我什么也不买,mysql,Mysql,我有这张桌子。我需要一个查询的帮助,该查询只显示在9月份买了东西但在10月份没有买任何东西的客户ID customer_id purchase_item qty purchase_date ----------- ------------- --- ------------- 5415151 desk organizer 1 9/5/2015 5415151 desk lamp
customer_id purchase_item qty purchase_date
----------- ------------- --- -------------
5415151 desk organizer 1 9/5/2015
5415151 desk lamp 1 9/5/2015
7884195 pen holder 8 9/7/2015
7894152 flash drive 10 9/19/2015
5987412 universal charger 2 9/28/2015
1264879 desk fan 20 10/7/2015
5415151 filing cabinet 5 10/10/2015
7894152 flash drive 5 10/10/2015
。。。这就是我想看到的:
user_id
-------
7894152
5987412
尝试演示,它将工作
希望这有帮助尝试这样的查询:-
SELECT customer_id,
group_concat(month((str_to_date(purchase_date,'%m/%d/%y')))) as date1
FROM `customer` group by customer_id
HAVING FIND_IN_SET('9',date1) >0 and FIND_IN_SET('10',date1) =0
我会争取一个助手表(每年12行,例如2015年9月1日是1行)。在左连接中使用它,它位于左侧。左连接在月=和年=。。。这就是为什么每个月只需要一行。因此,在结果中,总和为空的用户会收到一封电子邮件:“嘿,爱在哪里,为什么不再购买呢?”嗨!非常感谢。我正在考虑你的建议。这需要一段时间的结果才能显现出来。当我得到它时,我会给你回复。我已经编辑了查询(之前的查询有问题)…我添加了SQL FIDLE demouse BETH而不是MOUNT(STR_to_DATE)-这样如果存在购买日期的索引,查询会快得多
SELECT customer_id,
group_concat(month((str_to_date(purchase_date,'%m/%d/%y')))) as date1
FROM `customer` group by customer_id
HAVING FIND_IN_SET('9',date1) >0 and FIND_IN_SET('10',date1) =0