Laravel orderby与groupby sql [英] Laravel orderby with groupby sql

查看:727
本文介绍了Laravel orderby与groupby sql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用orderby和groupby一起尝试查询,并提出了这个在这里正常工作的解决方案是我的查询

Hi I am trying the query with orderby and groupby together and came up with this solution which is working fine here is my query

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

但是我怎么做这在Laravel雄辩中。

感谢您的任何建议

but how do i do this in Laravel Eloquent.
Thank you for your any suggestions

推荐答案

我以这种方式解决了谢谢

I solved it this way thanks

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();

这篇关于Laravel orderby与groupby sql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆