繁体   English   中英

查询生成器 Laravel 中的计数困难

[英]Difficulties with Count in query builder Laravel

您好,我正在尝试连接我的 4 个表以在视图中获取所有必要的信息 这 4 个表是(我只会放置对这种情况重要的字段):

用户:ID、姓名

Mentoria(ID_mentor是users.id的外键):ID,ID_mentor

Sessao_Mentoria: ID, ID_Mentoria

User_Sessao(这是一个连接users和Sessao_mentoria表的pivot表,所以这里的ID_mentorando是user.id的外键,id_sessao是sessao_mentoria.id的外键):ID_Mentorando, ID_Sessao

使用这个查询,我得到了我想要的几乎所有结果

   $sessoes= DB::table('sessao_mentoria')
                ->join('user_sessao', 'user_sessao.id_sessao', '=', 
                'sessao_mentoria.id')
                ->join('mentoria','mentoria.id', '=', 'sessao_mentoria.id_mentoria')
                ->join('users','users.id', '=', 'mentoria.id_mentor')
                ->select('sessao_mentoria.*','users.name')
                ->where('user_sessao.id_mentorando',$user->id)
                ->orderBy('sessao_mentoria.data')
                ->get();

我可以获得«Sessao_mentoria表»中的所有数据,以及连接到每个«Sessao_mentoria的«Mentor»的身份,并按«数据»排列

然而,我也想知道每个«Sessao_mentoria»有多少«mentorandos»,所以我的计划是在«user_sessao»表中添加一个计数,这样我就可以得到每个Sessao中«mentorandos»的数量。 我试着这样做

    $sessoes= DB::table('sessao_mentoria')
                ->join('user_sessao', 'user_sessao.id_sessao', '=', 
                   'sessao_mentoria.id')
                ->join('mentoria','mentoria.id', '=', 'sessao_mentoria.id_mentoria')
                ->join('users','users.id', '=', 'mentoria.id_mentor')
                ->select('sessao_mentoria.*','users.name', DB::raw('count(*) as sessao_count, 
                  user_sessao.id_mentorando'))
                ->where('user_sessao.id_mentorando',$user->id)
                ->groupBy('user_sessao.id_mentorando')
                ->orderBy('sessao_mentoria.data')
                ->get();

它只给我 Sessao_Mentoria 表的第一行的数据,它给我作为 sessao_count 结果,连接到任何 Sessao_mentoria 的 «mentorandos» 的总数,而不是连接到每个 Sessao 的总数。 我也尝试在计数中使用 Id_sessao,而不是 Id_mentorando,它给了我相同的结果,那么我该如何解决这个问题? 先感谢您

有人发表了评论但删除了它,但是我能够及时检查它,我按照建议做了,我将我的组更改为«Sessao_mentoria.id»,它成功了! 所以谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM