【问题标题】:Laravel Query Builder WHERE NOT IN with multiple WHERE clauseLaravel Query Builder WHERE NOT IN 与多个 WHERE 子句
【发布时间】:2016-04-10 08:48:52
【问题描述】:

我有以下查询,

SELECT * FROM `users` WHERE approved='1' 
and users.id NOT IN (SELECT donations.user_id FROM donations where month='1' 
and year='2016');

我关注了Laravel Query Builder WHERE NOT IN 并像这样转换我的查询,

$users = DB::table('users')->where('approved','=',1)->whereNotIn('id', function($q){
        $q->select('user_id')->from('donations')->where('month','=','$month')->where('year','=','$year');
        })->get();

但它不起作用,任何人都可以帮助我找出我犯错的地方。 如何将其转换为 Laravel 查询构建器格式? 谢谢。

【问题讨论】:

    标签: php laravel laravel-5 eloquent


    【解决方案1】:

    您不应将 $month$year 变量放在引号中。

    替换

    ->where('month','=','$month')->where('year','=','$year')
    

    ->where('month','=',$month)->where('year','=',$year)
    

    【讨论】:

    • 是的!有效。谢谢。我忘了它是一个变量。
    • @SAMEERKHAN 如果可行,您应该接受答案。
    猜你喜欢
    • 2020-07-26
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 2020-09-28
    相关资源
    最近更新 更多