Я разрабатываю веб-приложение с использованием Laravel 5.3. У меня возникла проблема с методом построителя запросов Laravel, гдеIn. Вот мой сценарий:Использование метода построителя запросов Laravel whereIn() с дополнительным запросом
У меня есть таблица вроде этого.
student - id, name, dob
course - id, code
student_course - student_id, course_id
То, что я хочу сделать, я хочу, чтобы получить студентов, которые ищут по course_id из student_course таблицы без присоединения к любой таблице. В ручном запросе мне это нравится.
SELECT * FROM `student` WHERE `student`.`id` IN (SELECT `student_id` FROM `student_course` WHRE `course_id`= ?)
Так что теперь, когда я пытаюсь преобразовать его в конструктор запросов Laravel, у меня есть проблема. Вот мой код:
DB::table('student')->whereIn('id',[ "Here I want to run sub query" ])->get();
Как вы можете видеть во втором параметре whereIn(), я получаю проблему. В этом случае мне нужно запустить необработанный запрос? Как запустить исходный запрос в качестве второго параметра? Если нет, то как я могу фильтровать по курсу_ид только в одном запросе, как указано выше, и не присоединяться к какой-либо таблице?
Возможно отношение: HTTP: // StackOverflow .com/questions/16815551/how-to-do-this-in-laravel-subquery-where-in –
Да, эта ссылка решила мою проблему. Спасибо. –