如何将sql查询编码为雄辩的laravel

如何将sql查询编码为雄辩的laravel,laravel,Laravel,从选择代理ID、事件时间作为第一次登录中选择t2.代理ID、第一次登录、最后一次注销 来自数据集市\u代理\u详细信息 其中datamart_agent_details.GRP_DBID位于“3”中 事件时间介于“2018-03-18 00:00:00”和“2018-03-18 23:59:59”之间 和事件='LOGIN' 按代理\u id分组 按事件和时间排序asc t1左加入选择代理\u ID,事件\u时间作为最后一次\u注销 来自数据集市\u代理\u详细信息 其中datamart_age

从选择代理ID、事件时间作为第一次登录中选择t2.代理ID、第一次登录、最后一次注销 来自数据集市\u代理\u详细信息 其中datamart_agent_details.GRP_DBID位于“3”中 事件时间介于“2018-03-18 00:00:00”和“2018-03-18 23:59:59”之间 和事件='LOGIN' 按代理\u id分组 按事件和时间排序asc t1左加入选择代理\u ID,事件\u时间作为最后一次\u注销 来自数据集市\u代理\u详细信息 其中datamart_agent_details.GRP_DBID位于“3”中 事件时间介于“2018-03-18 00:00:00”和“2018-03-18 23:59:59”之间 和事件='LOGOUT' 按代理\u id分组 按事件顺序\u时间描述 t1上的t2。代理id=t2。代理id

请告诉我如何将其转换为雄辩的laravel

$fromTempTable = DB::raw("(select AGENT_ID, EVENT_TIME as First_Login from datamart_agent_details where datamart_agent_details.GRP_DBID in ('3') and EVENT_TIME between '2018-03-18 00:00:00' and '2018-03-18 23:59:59' and EVENT = 'LOGIN' group by agent_id order by event_time asc as) t2");

$leftTempTable = DB::raw("(select AGENT_ID, EVENT_TIME as last_logout from datamart_agent_details where datamart_agent_details.GRP_DBID in ('3') and EVENT_TIME between '2018-03-18 00:00:00' and '2018-03-18 23:59:59' and EVENT = 'LOGOUT' group by agent_id order by event_time desc) t1");

DB::table($fromTempTable)
    ->select('t2.AGENT_ID', 'First_Login', 'last_logout')
    ->leftJoin($leftTempTable, 't1.agent_id', '=', 't2.agent_id') 
    ->get();

你试过了吗?你可以在模型和控制器中使用这个查询。但标准的模型是这样放在模型中的。$DataTable=AgentLogin::其中'datamart\u agent\u details.GRP\u DBID',$arraylist->Wherebeween'EVENT\u TIME',array$from,$to->getAllQuery->groupInterval$interval这是我的controllerreturn$query->leftJoin'cfg\u agent','cfg\u agent.LOGIN\u ID',',“datamart\u agent\u details.agent\u ID”->选择“t2.agent\u ID”、“第一次登录”、“最后一次注销”->leftJoin$leftestable、“t1.agent\u ID”、“t1.agent\u ID”、“t2.agent\u ID”,这是我的返回查询