Laravel Query Builder ГДЕ НЕ В

У меня есть следующий запрос sql

SELECT * FROM exams WHERE exams.id NOT IN (SELECT examId FROM testresults)

как я могу преобразовать его в формат построителя запросов Laravel?

Спасибо.


person Tommy Lee    schedule 06.02.2015    source источник


Ответы (2)


Вы можете использовать whereNotIn с закрытием:

$result = DB::table('exams')->whereNotIn('id', function($q){
    $q->select('examId')->from('testresults');
})->get();
person lukasgeiter    schedule 06.02.2015
comment
мне все еще нужно добавить ->get() в конце? - person Tommy Lee; 06.02.2015

с Eloquent :

$result = Exams::whereNotIn('id', function($q){
        $q->select('examId')->from('testresults');
    })->get();
person Hamidreza Akbari    schedule 13.10.2020
comment
Поскольку на этот вопрос есть принятый ответ с 2015 года, было бы гораздо полезнее для любого, кто просматривает этот вопрос, если бы вы могли отредактировать свой ответьте и объясните, чем ваш ответ отличается от принятого ответа и в каких обстоятельствах вы считаете, что это был бы лучший подход. - person David Buck; 13.10.2020