Mysql 使用groupby sql的Laravel orderby

Mysql 使用groupby sql的Laravel orderby,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,您好,我正在尝试与orderby和groupby一起进行查询,并提出了此解决方案,该解决方案运行良好这是我的查询 SELECT p1.year_id,p1.tbl_wsp_master_id ,tbl_wsp_masters.WSP_Name FROM tbl_wsp_years p1 INNER JOIN ( SELECT max(year_id) MaxPostDate,tbl_wsp_master_id FROM tbl_wsp_years GROUP BY tbl

您好,我正在尝试与orderby和groupby一起进行查询,并提出了此解决方案,该解决方案运行良好这是我的查询

SELECT p1.year_id,p1.tbl_wsp_master_id ,tbl_wsp_masters.WSP_Name
FROM tbl_wsp_years p1
INNER JOIN
(
    SELECT max(year_id) MaxPostDate,tbl_wsp_master_id
    FROM tbl_wsp_years
    GROUP BY tbl_wsp_master_id
) p2
  ON p1.tbl_wsp_master_id = p2.tbl_wsp_master_id
  AND p1.year_id = p2.MaxPostDate
INNER JOIN tbl_wsp_masters
 ON tbl_wsp_masters.id = p1.tbl_wsp_master_id    
order by p1.year_id desc
但我如何在拉威尔雄辩地做到这一点。

谢谢你的建议

我这样解决了,谢谢

DB::table('tbl_wsp_years as y1')
        ->join('tbl_wsp_masters', 'tbl_wsp_masters.id', '=', 'y1.tbl_wsp_master_id')
        ->select('tbl_wsp_masters.WSP_Name AS WSP_Name', 'y2.*')
        ->join(DB::raw('(SELECT MAX(year_id) MaxYear, tbl_wsp_master_id FROM tbl_wsp_years GROUP BY tbl_wsp_master_id) y2'), 
                function($join)
                {
                    $join->on('y1.tbl_wsp_master_id', '=', 'y2.tbl_wsp_master_id');
                    $join->on('y1.year_id','=','y2.MaxYear');
                })
        ->orderBy('y1.year_id', 'DESC')
        ->get();

我是这样解决的谢谢

DB::table('tbl_wsp_years as y1')
        ->join('tbl_wsp_masters', 'tbl_wsp_masters.id', '=', 'y1.tbl_wsp_master_id')
        ->select('tbl_wsp_masters.WSP_Name AS WSP_Name', 'y2.*')
        ->join(DB::raw('(SELECT MAX(year_id) MaxYear, tbl_wsp_master_id FROM tbl_wsp_years GROUP BY tbl_wsp_master_id) y2'), 
                function($join)
                {
                    $join->on('y1.tbl_wsp_master_id', '=', 'y2.tbl_wsp_master_id');
                    $join->on('y1.year_id','=','y2.MaxYear');
                })
        ->orderBy('y1.year_id', 'DESC')
        ->get();

你试过了吗?你试过了吗?