2017-03-27 15 views
1

このmysqlクエリをlaravelに渡すにはどうすればよいですか?NOT INを使用する方法laravel

select examenes.id, examenes.name, materias.name 
from examen_grupo, grupo_user, materias, examenes 
where examenes.id NOT IN (
    SELECT examen_id FROM examen_user WHERE user_id = 9 
) 
and grupo_user.grupo_id=examen_grupo.grupo_id 
and examen_grupo.examen_id=examenes.id 
and examenes.materia_id=materias.id 
and grupo_user.user_id=9; 

答えて

0

これを試してみてください:

DB::table('examenes') 
    ->join('examen_grupo', 'examen_grupo.examen_id', '=', 'examenes.id') 
    ->join('materias', 'materias.id', '=', 'examenes.materia_id') 
    ->join('grupo_user', 'grupo_user.grupo_id', '=', 'examen_grupo.grupo_id') 
    ->where('grupo_user.user_id', 9) 
    ->whereNotIn(function ($query) { 
     $query->from('examen_user') 
       ->where('examen_user.user_id', 9) 
       ->pluck('examen_user.examen_id'); 
    }) 
    ->get(['examenes.id', 'examenes.name', 'materias.name']); 
関連する問題