【发布时间】:2018-11-04 03:37:56
【问题描述】:
我有一个表单,我的用户可以在其中设置条件来搜索他们的客户数据库,但是我正在努力将查询拉到一起(在 Laravel 5.7 中工作)。
目前客户可以设置的标准如下:
- 客户有“确切 |更多 |少于”X 次访问
- 客户第一次访问是“完全 |更多 |少于” X 天
- 客户上次访问是“完全 |更多 |少于” X 天
- 客户提供商是“facebook |推特 |电子邮件 |任何”
我现在正试图弄清楚如何将其构建到查询中,我什至无法生成一个具体的示例!我的障碍似乎是检查第一条记录和最后一条记录以确保它符合标准。
SQLFiddle:http://sqlfiddle.com/#!9/68407/1
我的桌子:
| id | name | email | provider | created_at
---------------------------------------------------------------------------------------
| 1 | Mr Smith | mr.smith@example.com | facebook | 2018-11-01 09:00:00 |
| 2 | Mrs Smith | mrs.smith@example.com | facebook | 2018-11-01 09:00:00 |
| 3 | Miss Smith | miss.smith@example.com | email | 2018-11-01 09:00:00 |
| 4 | Doctor Smith | doctor.smith@example.com | email | 2018-11-01 09:00:00 |
| 5 | Lord Smith | lord.smith@example.com | twitter | 2018-11-01 09:00:00 |
| 6 | Lady Smith | lady.smith@example.com | email | 2018-11-01 09:00:00 |
| 7 | Mr Smith | mr.smith@example.com | facebook | 2018-11-02 09:00:00 |
| 8 | Mrs Smith | mrs.smith@example.com | facebook | 2018-11-02 09:00:00 |
| 9 | Doctor Smith | doctor.smith@example.com | email | 2018-11-02 09:00:00 |
| 10 | Lord Smith | lord.smith@example.com | twitter | 2018-11-02 09:00:00 |
| 11 | Lady Smith | lady.smith@example.com | email | 2018-11-02 09:00:00 |
| 12 | Mr Smith | mr.smith@example.com | facebook | 2018-11-03 09:00:00 |
| 13 | Mrs Smith | mrs.smith@example.com | facebook | 2018-11-03 09:00:00 |
| 14 | Miss Smith | miss.smith@example.com | email | 2018-11-03 09:00:00 |
| 15 | Lord Smith | ord.smith@example.com | twitter | 2018-11-03 09:00:00 |
| 16 | Lady Smith | lady.smith@example.com | email | 2018-11-03 09:00:00 |
查询的示例客户条件:
- 访问次数超过 2 次的客户
- 客户首次访问时间超过 2 天
- 客户上次访问时间超过 1 天
- 客户提供商是 Facebook
当前查询:
$Customers = Customer::groupBy('email')
->havingRaw('COUNT(*) > 2’)
->where('created_at', '<', Carbon::now()->subDays(2)->toDateTimeString())
->get();
我不知道如何提取第一个客户记录检查它是否超过 2 天,然后提取他们的最后一条记录并确保它超过 1 天。 我知道我当前的查询对于我想要实现的目标完全没有用,但我再次努力将其整合在一起。
预期结果:
| id | name | email | provider | created_at
---------------------------------------------------------------------------------------
| 12 | Mr Smith | mr.smith@example.com | facebook | 2018-11-03 09:00:00 |
| 13 | Mrs Smith | mrs.smith@example.com | facebook | 2018-11-03 09:00:00 |
【问题讨论】:
标签: php mysql laravel eloquent