首页 > 解决方案 > laravel查询bewteen

问题描述

我想将 sql 查询转换为在 sql 中运行良好的 laravel 查询

select
   a.id,
   a.assigned_user_name,
   a.lead_stage_c,
   a.meeting_start_date,
   a.call_start_date 
from
   mgl_report_targets as a 
   left join
      dcalendardate b 
      on b.datevalue = a.meeting_start_date 
   left join
      dcalendardate c 
      on c.datevalue = a.call_start_date 
where
   (
      a.lead_stage_c = 'Target-MQL'
   )
   and 
   (
      b.datevalue between '2020-07-31' and '2020-09-01'
   )
   or 
   (
      c.datevalue between '2020-07-31' and '2020-09-01'
   )
   and a.active_status = '1' 
   and a.lead_stage_c = 'Target-MQL'

在 laravel 我试过

$report_details=DB::table('mgl_report_targets')->where('active_status',1);
$report_details=$report_details->leftjoin('dcalendardate as a','a.datevalue','=',DB::raw("mgl_report_targets.meeting_start_date::date"))->leftjoin('dcalendardate as b','b.datevalue','=',DB::raw("mgl_report_targets.call_start_date::date"));
$report_details=$report_details->where(function ($query) { 
         return $query->whereBetween('a.datevalue',['2020-07-31','2020-09-01']);
       })
 ->orWhere(function ($query) { 
        return $query->whereBetween('b.datevalue',['2020-07-31','2020-09-01']);
        }); 
$report_details=$report_details->where('mgl_report_targets.lead_stage_c','=','Target-MQL')->select('mgl_report_targets.id','mgl_report_targets.assigned_user_name','mgl_report_targets.meeting_start_date','mgl_report_targets.call_start_date','mgl_report_targets.lead_stage_c')->get();

但在查询之间没有按预期查询。我做错了什么。

标签: phpmysqllaravellaravel-5

解决方案


推荐阅读