Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MYSQL查询转换为雄辩的_Mysql_Laravel_Eloquent - Fatal编程技术网

将MYSQL查询转换为雄辩的

将MYSQL查询转换为雄辩的,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,如何将此查询转换为雄辩的语法 SELECT x.id, x.title, points, (points - 1)/POW(((UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(x.created_at))/3600)+2, 1.5) as hasil FROM media x JOIN (SELECT m.id, (SUM(mp.up)-SUM(mp.down)) AS points

如何将此查询转换为雄辩的语法

    SELECT x.id, x.title, points, (points - 1)/POW(((UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(x.created_at))/3600)+2, 1.5) as hasil
    FROM media x
    JOIN (SELECT m.id, 
                 (SUM(mp.up)-SUM(mp.down)) AS points
            FROM media m
            JOIN media_points mp ON mp.media_id = m.id
        GROUP BY m.id) y ON y.id = x.id
ORDER BY hasil DESC
   LIMIT 100

最后我用raw找到了答案

Media::select(DB::raw('media.*, (points - 1)/POW(((UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(media.created_at))/3600)+2, 1.5) as hasil'))
                                ->join(DB::raw('(SELECT m.id, (SUM(mp.up)-SUM(mp.down)) AS points FROM media m JOIN media_points mp ON mp.media_id = m.id GROUP BY m.id) as T'), 'T.id', '=', 'media.id')
                                ->orderBy('hasil','desc')
                                ->take(100)

请理解,这里没有人为你做这项工作。详细说明你已经做了什么以及你的问题在哪里。请记住,并非每个SQL语句都可以转换为雄辩的语法。对于复杂的SQL语句,仍然需要使用原始SQL。感谢您使用原始SQL提供的建议。最后我找到了答案Media::selectDB::raw'Media.*,points-1/POWUNIX\u TIMESTAMPNOW-UNIX\u TIMESTAMPmedia.created_at/3600+2,1.5 as hasil'->joinDB::raw'SELECT m.id,summap.up-summap.down as points FROM Media m JOIN Media\u points mp ON mp.Media\u id=m.id GROUP BY m.id as T','T.id','T.id','Media.id'->orderBy'hasil',“描述”->take100