Как преобразовать необработанный SQL-запрос в laravel querybuilder или eloquent - PullRequest
1 голос
/ 10 октября 2019

Мне трудно преобразовать этот необработанный запрос MySQL в phpmyadmin. Я хочу преобразовать его в конструктор запросов laravel или eloquent. Я уже настроил отношения в модели. Может кто-нибудь преобразовать мой запрос в querybuilder и eloquent? Я попробовал какой-то конвертер, но он не работает для меня. Спасибо

Необработанный запрос

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 ]

2 голосов
/ 10 октября 2019
$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, как определено, а не user.parent_id

2 голосов
/ 10 октября 2019

Попробуйте

  $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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...