Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将原始复杂SQL查询转换为雄辩的_Php_Laravel_Laravel 5_Eloquent - Fatal编程技术网

Php 将原始复杂SQL查询转换为雄辩的

Php 将原始复杂SQL查询转换为雄辩的,php,laravel,laravel-5,eloquent,Php,Laravel,Laravel 5,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' 提前谢谢你这应该可以做到: DB::table('r

有人能帮我把这个翻译成雄辩的句子吗

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'

提前谢谢你

这应该可以做到:

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();

这应该可以做到:

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)。我认为两者都是等价的,但显然不是在这种情况下。太棒了,杰德泽伊!