【问题标题】:Translate raw complex SQL query into Eloquent将原始复杂的 SQL 查询翻译成 Eloquent
【发布时间】:2016-05-07 16:13:37
【问题描述】:

谁能帮我把它翻译成 Eloquent?

select * from resources 
left join links 
    on links.resource_id = resources.id 
        and (links.ud_id IS NULL OR links.ud_id = '7') 
where resources.user_id = '1' 
    and resources.subject_id = '4'

提前谢谢你

【问题讨论】:

    标签: php laravel laravel-5 eloquent


    【解决方案1】:

    这应该可以解决问题:

    DB::table('resources')
      ->leftJoin('links', function($join) {
        $join->on('links.resource_id', '=', 'resources.id');
        $join->where(function($query) {
          $query->whereNull('links.ud_id');
          $query->orWhere('links.ud_id', '=', 7);
        });
      })
      ->where('user_id', 1)
      ->where('subject_id', 4)
      ->get();
    

    【讨论】:

    • 完美。只是一个小细节,已经被严格整理出来了。而不是 orWhere('links.ud_id', 7) 我不得不将其更改为 orWhere('links.ud_id', '=', 7)。我认为两者都是等价的,但在这种情况下显然不是。太棒了,Jedrzej!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2018-09-12
    相关资源
    最近更新 更多