如何将此mysql查询传递给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 :(得分: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']);