为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据另一个表的值从另一个表中进行选择 雄辩?

如何根据另一个表的值从另一个表中进行选择 雄辩?

PHP
HUH函数 2022-09-17 17:23:13
我正在尝试获取一些仍然活跃的学生的数据。即使我在同一张表格中也有来自不活跃学生的数据。这是学生关怀这是学生班这是我提出的雄辩查询:        StudentAttendance::          select('student_classes.active', 'student_attendances.student_id', 'student_attendances.classroom_id', 'classrooms.classroom', 'attendance_rules.option')        ->join('classrooms', 'classrooms.id', '=', 'student_attendances.classroom_id')        ->join('attendance_rules','attendance_rules.id', '=', 'student_attendances.attendance_id')        ->join('student_classes', 'student_attendances.student_id', '=', 'student_classes.student_id')        ->where('attendance_date', date("Y-m-d"))                ->orderBy('classrooms.classroom', 'ASC')        ->get();SQL:select `student_classes`.`active`, `student_attendances`.`student_id`, `student_attendances`.`classroom_id`, `classrooms`.`classroom`, `attendance_rules`.`option` from `student_attendances` inner join `classrooms` on `classrooms`.`id` = `student_attendances`.`classroom_id` inner join `attendance_rules` on `attendance_rules`.`id` = `student_attendances`.`attendance_id` inner join `student_classes` on `student_attendances`.`student_id` = `student_classes`.`student_id` where `attendance_date` = '2020-02-11' order by `classrooms`.`classroom` asc现在我的雄辩查询结果如下:如您所见,student_id 22 的classroom_id处于非活动状态,但它似乎处于非活动状态一次,其余部分处于活动状态。如果删除student_classes加入,我不会得到所有重复的结果。目标是在 Student 类中显示学生处于活动状态(active=1)的今天的所有出勤情况,即使我在“学生关注”中进行查询也是如此。
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您需要将联接的范围限定为仅查看活动记录。student_classes


您可以通过在 join 方法中使用回调来执行此操作:


->join('student_classes', function ($join) {

    $join->on('student_attendances.student_id', '=', 'student_classes.student_id')

        ->on('student_classes.classroom_id', '=', 'student_attendances.classroom_id')

        ->where('student_classes.active', 1);

})

这在查询生成器文档中的“高级联接子句”中进行了介绍 - https://laravel.com/docs/5.8/queries#joins


查看完整回答
反对 回复 2022-09-17
  • 1 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号