[英]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.