Laravel将原始sql转换为雄辩的sql

Laravel将原始sql转换为雄辩的sql,laravel,eloquent,laravel-8,Laravel,Eloquent,Laravel 8,我有一个类似这样的问题 select sum(end_time-start_time) as total,userid,firstname,lastname from users.fd_page_logs LEFT JOIN users.fd_users ON fd_page_logs.userid=fd_users.id WHERE fd_users.username!=''".$search." AND DATE_FORMAT(datetime,'%Y-%m-%d'

我有一个类似这样的问题

select sum(end_time-start_time) as total,userid,firstname,lastname from users.fd_page_logs 
LEFT JOIN users.fd_users ON fd_page_logs.userid=fd_users.id 
WHERE fd_users.username!=''".$search." 
AND DATE_FORMAT(datetime,'%Y-%m-%d')='".date("Y-m-d")."' 
group by userid 
order by sum(end_time-start_time) DESC 
limit 0,10
我正试图把这转化为雄辩。这就是我目前得到的

FdPageLogs::select("end_time", "start_time", "userid", "firstname", "lastname")
    ->leftJoin('fd_users', 'fd_page_logs.userid', '=', 'fd_users.id')
    ->where('fd_users.username', '!=', '')
    ->groupBy('fd_page_logs.filename')
    ->get();

这里我还遗漏了什么。

您遗漏了一些原始条件和第一张表:

FdPageLogs::table('fd_page_logs') // Needs this and the DB::raw below
    ->select(DB::raw('sum(end_time-start_time) as total'),"end_time", "start_time", "userid", "firstname", "lastname")
    ->leftJoin('fd_users', 'fd_page_logs.userid', '=', 'fd_users.id')
    ->where('fd_users.username', '!=', $search) //Also missed this
    ->whereDate('datetime', Carbon::today()) // I prefer this syntax rather than date format
    ->groupBy('fd_page_logs.filename')
    ->orderBy('total', 'DESC') //I think this should work
    ->get();

您错过了一些原始条件和第一张表:

FdPageLogs::table('fd_page_logs') // Needs this and the DB::raw below
    ->select(DB::raw('sum(end_time-start_time) as total'),"end_time", "start_time", "userid", "firstname", "lastname")
    ->leftJoin('fd_users', 'fd_page_logs.userid', '=', 'fd_users.id')
    ->where('fd_users.username', '!=', $search) //Also missed this
    ->whereDate('datetime', Carbon::today()) // I prefer this syntax rather than date format
    ->groupBy('fd_page_logs.filename')
    ->orderBy('total', 'DESC') //I think this should work
    ->get();

您可以将DB row方法与雄辩的
FdPageLogs::select(DB::raw('select sum(end_time-start_time)作为总计,userid,firstname,lastname from users.fd_page_logs LEFT JOIN users.fd_users.id其中fd_users.username!“”.$search.”和DATE_格式(datetime,%Y-%m-%d')=”。DATE(“Y-m-d”)。”'group by userid order by sum(end_time-start_time)DESC limit 0,10))->get()
您可以将DB row方法与雄辩的
FdPageLogs::select(DB::raw('select sum(end_time-start_time)作为总计,userid,firstname,lastname from users.fd_page_logs LEFT JOIN users.fd_users ON fd_page_logs。userid=fd_users.id其中fd_users!''。$search.”和DATE_格式(datetime,%Y-%m-%d')=''。日期(“Y-m-d”)。”'group by userid order by sum(end_time-start_time)DESC limit 0,10))->get()