如何将原始SQL查询转换为laravel querybuilder或雄辩

时间:2019-10-10 07:28:16

标签: php mysql laravel eloquent

我很难在phpmyadmin中转换此原始MySQL查询。我想将其转换为laravel的查询生成器或雄辩的。我已经在模型中配置了关系。有人可以将我的查询转换为querybuilder并且雄辩吗?我尝试了一些转换器,但对我不起作用。谢谢

原始查询

SELECT count( * ) FROM users u, sectionschedules s, notes n 
WHERE u.parent_id=26 
AND u.section_id=s.section_id 
AND s.id = n.schedule_id;

我尝试过查询

$notes = DB::table('notes')
                    ->join('users', 'users.section_id', '=', 'notes.section_id')
                    ->join('sections','sections.section_id', '=', 'sectionschedules.section_id')
                    ->join('sectionschedules', 'sectionschedules.id','=','notes.schedule_id')
                    ->where('user.parent_id', '=', 26)
                    ->count();

我遇到错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user.parent_id' in 'where clause

2 个答案:

答案 0 :(得分:2)

尝试

  $notes = DB::table('sectionschedules')
           ->select('notes.*','sectionschedules.*','users.*')
           ->join('users','users.section_id', '=', 'sectionschedules.section_id')
           ->join('notes', 'sectionschedules.id','=','notes.schedule_id')
           ->where('users.parent_id', '=', 26)
           ->count();

答案 1 :(得分:2)

$notes = DB::table('notes')
                ->join('users', 'users.section_id', '=', 'notes.section_id')
                ->join('sections','sections.section_id', '=', 'sectionschedules.section_id')
                ->join('sectionschedules', 'sectionschedules.id','=','notes.schedule_id')
                ->where('users.parent_id', '=', 26)
                ->count();

所定义的Users.parent ID不是user.parent_id