首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel获取连接表的最新日期

Laravel获取连接表的最新日期
EN

Stack Overflow用户
提问于 2014-09-05 17:40:42
回答 1查看 1.5K关注 0票数 1

我使用Laravel的查询构建器执行此查询,并使用列s_nid上链接的两个表进行左连接。有了这个表,我就可以连接到conference_report了,有很多行只有一个s_nid,我只想返回最近日期的行。我一直在研究Groupwise Maximum,这里有一些示例,这对我来说是新的,我认为这是我完成查询所需的,但我不确定如何在我要连接的表上实现它。

代码语言:javascript
复制
$data['students'] = DB::table('educational_report')
        ->select('educational_report.s_nid as s_nid'
                ,'educational_report.name as name'
                ,'educational_report.file_no as file_no'
                ,'educational_report.university as university'
                ,'conference_report.conference_end_date as conference_end_date'
                ,'student_status.status as status')
        ->leftJoin('student_status', 'student_status.s_nid', '=', 'educational_report.s_nid')
        ->leftJoin('conference_report', 'conference_report.s_nid', '=', 'educational_report.s_nid')
        ->distinct()
        ->groupBy('s_nid')
        ->paginate(10);

可能有用的链接:

Performing a Groupwise Maximum in Laravel 4

Groupwise maximum

http://dev.mysql.com/doc/refman/5.6/en/example-maximum-column-group-row.html

EN

回答 1

Stack Overflow用户

发布于 2014-09-05 19:39:36

我想我把事情搞得太复杂了,没有必要。我设法在连接上使用嵌套查询来解决这个问题,如下所示:

代码语言:javascript
复制
$data['students'] = DB::table('educational_report')
        ->select('educational_report.s_nid as s_nid'
                ,'educational_report.name as name'
                ,'educational_report.file_no as file_no'
                ,'educational_report.university as university'
                ,'cr2.conference_end_date as conference_end_date'
                ,'student_status.status as status')
        ->leftJoin('student_status', 'student_status.s_nid', '=', 'educational_report.s_nid')
        ->leftJoin(DB::raw('(select s_nid, MAX(conference_end_date) conference_end_date
                                from conference_report GROUP BY s_nid) as cr2'), function ($join) {
                                    $join->on ( 'cr2.s_nid', '=', 'educational_report.s_nid' );
                    })
        ->paginate(10);

它似乎工作正常,但我渴望得到任何可能纠正我正在做的事情的答案,或者提供一种更好的方法。谢谢:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25682920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档