【问题标题】:MYSQL nested query into Laravel Eloquent ORMMYSQL 嵌套查询到 Laravel Eloquent ORM
【发布时间】:2019-03-15 23:55:15
【问题描述】:

嘿,我试图将一个简单的嵌套查询传递给 Laravel ORM,所以我正在寻求帮助,我想知道解决它的最佳方法是什么。

学生属于一个课程,该课程有很多学生,学生可以参加很多实习,每个实习可以有很多学生。

这是重要表:Courses, Students(id,name,course_id), Internships 和 pivot_table_attendance(internship_id,student_id) 我需要知道每个实习中每门课程的学生总数

这是我的原始查询:

  SELECT count(*), internship_id FROM "attendance" where student_id in 
  (select id from "students" where course_id in 
  (select id from from "Courses"  where  name='X course')) 
  group by internship_id

【问题讨论】:

  • 表名不够,贴表结构。例如:student => id、name、address...等,特别是外键。

标签: mysql laravel


【解决方案1】:

如果您在模型中定义了关系,它应该看起来像这样(未经测试):

$result = Attandace::selectRaw('count(*), internship_id')
              ->whereHas('students.courses', function($query) {
                   $query->where('courses.name', 'X course');
              })->groupBy('internship_id');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2015-06-27
    • 1970-01-01
    • 2016-10-12
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多