Я пытаюсь найти всех пользователей, зарегистрированных для определенного курса, используя следующий запрос, используя laravel.Левое соединение не работает должным образом
$users = DB::table('users')
->leftJoin('registrationrequests', 'users.id', '=', 'registrationrequests.user_id')
->where('firstname', 'LIKE', "%$search%")
->orWhere('lastname', 'LIKE', "%$search%")
->orWhere('username', 'LIKE', "%$search%")
->where('registrationrequests.course_id', $course_id)
->where('registrationrequests.registered', 1)
->get();
В таблице registrationrequests
, у меня есть столбцы для course_id
, user_id
и registered
(двоичное значение). course_id
и user_id
- это внешние ключи для соответствующих таблиц.
Я получаю массив вывода. Но это не проверка состояния where('registrationrequests.course_id', $course_id)
В чем может быть причина?
вы смотрели на http://stackoverflow.com/a/18660266/689579? – Sean
Да, я проверил. это то же самое, что и этот запрос. – user1012181
Итак, вы пробовали '-> где ('registrationrequests.course_id', $ course_id) -> где ('registrationrequests.registered', 1) -> где (function ($ users) {$ users-> где ('firstname' , «LIKE», «% $ search%») -> orWhere («lastname», «LIKE», «% $ search%») -> orWhere («имя пользователя», «LIKE», «% $ search%») }) -> get(); '? – Sean