MySQL-显示尚未更新产品的用户
好吧,让我尽力解释一下。我需要生成一个报告的人,还没有更新的某个产品到期1年。我们称之为会员 我只需要为每个客户提取最新的行,这些行与一系列产品编号相匹配。我不想重复的客户没有记录被拉,但可以有多个不同的产品ID 查询:MySQL-显示尚未更新产品的用户,mysql,Mysql,好吧,让我尽力解释一下。我需要生成一个报告的人,还没有更新的某个产品到期1年。我们称之为会员 我只需要为每个客户提取最新的行,这些行与一系列产品编号相匹配。我不想重复的客户没有记录被拉,但可以有多个不同的产品ID 查询: SELECT * FROM client_educational WHERE product_id IN ('1', '2', '3') AND order_date < DATE_SUB(CURDATE(),INTERVAL 1 YEAR); 目前的结果: cli
SELECT * FROM client_educational
WHERE product_id IN ('1', '2', '3')
AND order_date < DATE_SUB(CURDATE(),INTERVAL 1 YEAR);
目前的结果:
client_no product order_date
12345 Membership 2 2017-04-15
12345 Membership 1 2016-04-15
58428 Membership 2 2015-04-15
58428 Membership 1 2014-04-15
期望输出:
client_no product order_date
12345 Membership 2 2017-04-15
58428 Membership 2 2015-04-15
请检查以下查询。 嵌套查询条件是删除在过去1年内有订单的客户机
SELECT c.* FROM client_educational c
WHERE c.product_id IN ('1', '2', '3')
AND c.order_date < DATE_SUB(CURDATE(),INTERVAL 1 YEAR)
AND c.client_no NOT IN
(
SELECT client_no FROM client_educational
WHERE product_id IN ('1', '2', '3')
AND order_date >= DATE_SUB(CURDATE(),INTERVAL 1 YEAR)
)
group by c.client_no order by c.order_date desc
嘿@Tanvir,谢谢你的回复。这似乎在很大程度上起了作用。。。然而,我注意到一些新产品正在渗透进来。例如,用户在2017年1月24日购买了产品编号1,然后在2018年3月4日再次购买了产品编号1。如果订单日期不到一年,我们是否可以让它完全不显示这些产品id?如果我需要提供更多信息,请告诉我。@Jon-我已经编辑了查询。条件中的嵌套查询应该可以防止在一年内拉取带有订单的客户机。
SELECT c.* FROM client_educational c
WHERE c.product_id IN ('1', '2', '3')
AND c.order_date < DATE_SUB(CURDATE(),INTERVAL 1 YEAR)
AND c.client_no NOT IN
(
SELECT client_no FROM client_educational
WHERE product_id IN ('1', '2', '3')
AND order_date >= DATE_SUB(CURDATE(),INTERVAL 1 YEAR)
)
group by c.client_no order by c.order_date desc