laravel 从两张表分别按月(例如传入的参数是 month=2021-09) 的所有数据,并按日期分组输出

laravel 根据两张表created_at字段分别取出月份等于 2021-09(传入的参数是 month=2021-09) 的所有数据,并按日期分组输出,用什么语句好。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
Junwind
最佳答案
  1. 不知道你这两张表是什么关系,或在可以是单独取;
  2. 不知道你这个按日期分组,是 2021-09-01 , 2021-09-02 的分组,还是什么意思;
  3. 这里假设是单独的两张表按日期取;
    建议先按日期查出来(like “2019-9%”),用PHP去分组
    //这里假设从数据库查询出来的是一个二维数组 $data
    $joins = [];
    foreach ($data as $v) {
     $joins[$v['create_at']][] = $v; 
    }
    //个人觉得,sql越简单越好,因为sql涉及io,php在内存中运行
2年前 评论
Junwind (作者) 2年前
Junwind (作者) 2年前
yizhu (楼主) 2年前
讨论数量: 2

如果一个月数据不大的话,可以使用数据库函数把created_at字段转换成y-m-d的形式,然后再对转换后的日期字段group by;

如果一个月的数据很多的话,建议再加个冗余字段存储y-m-d数据

2年前 评论
Junwind 2年前
Junwind
  1. 不知道你这两张表是什么关系,或在可以是单独取;
  2. 不知道你这个按日期分组,是 2021-09-01 , 2021-09-02 的分组,还是什么意思;
  3. 这里假设是单独的两张表按日期取;
    建议先按日期查出来(like “2019-9%”),用PHP去分组
    //这里假设从数据库查询出来的是一个二维数组 $data
    $joins = [];
    foreach ($data as $v) {
     $joins[$v['create_at']][] = $v; 
    }
    //个人觉得,sql越简单越好,因为sql涉及io,php在内存中运行
2年前 评论
Junwind (作者) 2年前
Junwind (作者) 2年前
yizhu (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!