laravel - Laravel:在不同的行中使用不同的 where 条件进行查询
问题描述
我有一个带有“配额”列的教室表,该列具有不同的值。一个班,有很多学生。如何在where
每个学生总数的条件下显示教室数据row < "quota"
?这是表:。
代码 :
Classroom::with('subject.teacher')->with('students')->whereHas('subject', fn ($query) => $query->where('grade', $grade))->withCount('students')->having('students_count', '<', 'quota');
当我使用此代码时,结果为空
想要的结果只显示 3 个教室
解决方案
您可以使用has
和DB::raw
。
// Simplified version
Classroom::has('students', '<=', DB::raw('classrooms.quota'))->get();
推荐阅读
- java - JavaEE 教程不起作用 - 迷失在异常的海洋中
- python - 使用python解析来自eapi的json结果
- javascript - 如何让端口转发与 gatsby 和 vagrant 或 virtualbox 一起使用
- php - 文档父名称在 Firestore PHP SDK 中的索引 53 处缺少集合 ID
- python - 当使用 for 语句创建多个按钮并使用 lambda 函数设置变量时,按钮都设置为设置相同的变量
- c# - Word Interop .InsertFile 导致样式丢失
- flutter - Flutter:JSON解析数据为空
- apache - htaccess 重写查询字符串未按预期工作
- c# - 当控件的顶级父窗口是活动窗口时设置焦点?
- android - Android相机读取缩放级别