首页 > 解决方案 > 在 laravel 中使用 join 和按月计算嵌套选择

问题描述

嗨,如何将此查询转换为 laravel ORM 或 Eloquent?oy 字段现在返回月份数,我想获取月份名称。

SELECT c.name as company, i.title_uz as internet, EXTRACT(MONTH FROM  ci.created_at) as oy, COUNT(*) AS miqdor
FROM count_internets AS ci
JOIN companies as c ON  ci.company_id = c.id
JOIN internets as i ON  ci.u_id = i.id
GROUP BY company, internet, oy

标签: laraveleloquent

解决方案


对于月份名称,您可以使用MySQL MONTHNAME() 函数

  DB::table("count_internets")->join("companies","companies.id",'=','count_internets.company_id')
           ->join("internets",'internets.id','=','count_internets..u_id')
           ->select(["count_internets.name as company",'internets.title_uz as internet',DB::raw("MONTHNAME(companies.created_at) as oy")
               ,DB::raw("COUNT(*) AS miqdor")])
           ->groupBy(['company','internet','oy'])->get();

推荐阅读