php - 在 laravel 查询生成器中加入多个表会导致重复
问题描述
我正在尝试使用 Laravel Query Builder 加入 2 个表。
这是我加入 2 个表的查询
$instructors = DB::table('instructors')
->join('instructor_courses', 'instructors.id', '=','instructor_courses.instructor_id')
->where('instructor_courses.course_id', $schedule->course_id)
->where('instructor_courses.position', 'Instructor')
->whereNull('instructor_courses.deleted_at')
->whereNull('instructors.deleted_at')
->get();
该代码让我可以正确加入表格,但这会导致多次重复。看一下select标签传入的结果
这是我的架构
基本上我想要实现的是显示一条不重复的记录。有没有更好的方法来加入像这样的多个表?谢谢
解决方案
你应该groupBy
使用instructors.id
$instructors = DB::table('instructors')
->join('instructor_courses', 'instructors.id', '=','instructor_courses.instructor_id')
->where('instructor_courses.course_id', $schedule->course_id)
->where('instructor_courses.position', 'Instructor')
->whereNull('instructor_courses.deleted_at')
->whereNull('instructors.deleted_at')
->groupBy('instructors.id') //add a line
->get();
推荐阅读
- c# - C# 页面导航 PHP 抓取
- javascript - 如何从多选中的选项中获取数据属性?
- qt - 如何在gui中获取textEdit的文本内容
- angular - Ng2SearchPipeModule 过滤器导致错误:“x.component”类型上不存在属性“过滤器”
- python - 2captcha 硒超出范围
- logstash - 具有跨多行任务 ID 的 Logstash 聚合插件
- sql - 用户名和密码不区分大小写
- weka - Weka 显示奇怪的分类结果 - 问号“?”
- python - 从两个txt文件中生成json文件
- html - Internet Explorer 和 box-sizing:td 中 div 内的边框框