Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找没有活动产品的用户_Mysql - Fatal编程技术网

Mysql 查找没有活动产品的用户

Mysql 查找没有活动产品的用户,mysql,Mysql,我有以下数据库 id | userid | productid | specialid | buydate (timestamp in this sample as YYYY-MM-DD) 1 | 1 | 1 | 1 | 2020-12-01 2 | 2 | 1 | 3 | 2020-12-25 3 | 3 | 1 | 6 | 2020-12-20 4 | 4 | 1 | 2 | 2020-12-15 5 | 2 | 1 | 4 | 2021-01-15 我想知道谁有活性产品。 我想获得在20

我有以下数据库

id | userid | productid | specialid | buydate (timestamp in this sample as YYYY-MM-DD)
1 | 1 | 1 | 1 | 2020-12-01
2 | 2 | 1 | 3 | 2020-12-25
3 | 3 | 1 | 6 | 2020-12-20
4 | 4 | 1 | 2 | 2020-12-15
5 | 2 | 1 | 4 | 2021-01-15
我想知道谁有活性产品。 我想获得在2020-12-01和2020-12-18之间购买该产品的specialid的所有用户ID,但不是最近购买同一产品的用户

在本例中,这将是ID 1,3,4。UserID2在此期间购买了该产品,但在1月份再次购买了相同的产品

目前我只能想到用PHP创建两个数组,一个在2020-12-01和2020-12-18之间购买,另一个在2020-12-19和2021-01-25之间购买。 在另一个循环中,我可以检查新数组中是否有匹配项,并将它们从第一个数组中删除


但是没有更简单的方法吗?

考虑到这种基本的表结构:

创建表数据 id INT非空自动增量, userid INT不为NULL, productid INT不为空, specialid INT不为空, buydate日期时间不为空, 主键id ; 插入到数据值中 1, 1, 1, 1, '2020-12-01', 2, 2, 1, 3, '2020-12-25', 3, 3, 1, 6, '2020-12-20', 4, 4, 1, 2, '2020-12-15', 5, 2, 1, 4, '2021-01-15', 7, 2, 1, 4, '2020-12-15'; 您应该能够编写一个简单的查询来处理这个问题。主查询选择您的数据范围,子查询排除最近的数据范围

选择 * 从…起 数据 哪里 购买日期介于“2020-12-01”和“2020-12-18”之间 和 中没有用户ID 选择 用户ID 从…起 数据 哪里 购买日期>'2020-12-18' ; 这将产生以下结果: 身份证件 用户ID 产品ID 特殊的 购买日期 1. 1. 1. 1. 2020-12-01 00:00:00 4. 4. 1. 2. 2020-12-15 00:00:00
用户3于2020-12-20购买,因此也不应包括在内,对吗?哦,对不起。我的计划失败了。用户3更新了,真的很棒。非常感谢。我会试试看,但我认为这太棒了。你不需要子查询here@Strawberry,您可以在不使用子查询的情况下更新此内容,还是发布替代内容?排除的目的不仅仅是删除最近的订单,而是完全删除也购买了更多最新订单的用户。我之前在CTE的土地,所以可能我的大脑现在没有正确的发射,但是。目前,没有。你的查询返回相同的结果,无论有没有不在,所以很难知道去哪里。它工作。多谢各位@草莓:将ID 2的日期更改为2020-12-15。所以结果是正确的