Laravel 查询生成器不在

Posted

技术标签:

【中文标题】Laravel 查询生成器不在【英文标题】:Laravel Query Builder WHERE NOT IN 【发布时间】:2015-04-06 08:10:59 【问题描述】:

我有以下 sql 查询

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

如何将其转换为 Laravel 查询构建器格式?

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用 whereNotIn 和闭包:

$result = DB::table('exams')->whereNotIn('id', function($q)
    $q->select('examId')->from('testresults');
)->get();

【讨论】:

最后还需要加->get()吗?【参考方案2】:

与雄辩:

$result = Exams::whereNotIn('id', function($q)
        $q->select('examId')->from('testresults');
    )->get();

【讨论】:

由于这个问题在 2015 年有一个公认的答案,如果你能edit 你的答案并解释你的答案与公认的答案有何不同以及在您认为这是更好的方法的情况下。

以上是关于Laravel 查询生成器不在的主要内容,如果未能解决你的问题,请参考以下文章

laravel 查询生成器查询有啥问题?

Laravel 查询生成器 从子查询中选择

laravel,查询生成器,(或)查询未按预期工作

Laravel 查询生成器一般错误 2031

查询生成器 Laravel 左连接

将 mysql 查询转换为 laravel 查询生成器