mysql
  • laravel
  • laravel-query-builder
  • 2017-09-26 58 views 0 likes 
    0

    这是原始查询如何使用查询生成器编写此原始查询?我的一个是否正确?

    $sql = 'SELECT c.* 
    FROM catalogs c 
    LEFT JOIN (SELECT s.* FROM stock s WHERE s.date = "'.$dateOption.'") as sb  
    on sb.id_product = c.id_product 
    WHERE c.id_branch = '.Auth::user()->id_branch.'; 
    
    $list = DB::select($sql); 
    

    我修改它使用查询生成器,但结果的预期结果是不正确

    $lists = DB::table('catalogs') 
          ->leftJoin('stock', 's.id_product','=','catalogs.id_product') 
          ->where('s.date',$dateOption) 
          ->where('catalogs.id_branch',Auth::user()->id_branch) 
          ->get(); 
    

    任何人都可以告诉我,我应该怎么写呢查询生成器?

    +1

    是否有错误?你能告诉我们两个结果吗?哪个是正确的结果集?谢谢 – aaron0207

    +0

    您的查询有什么问题? –

    +0

    我只想知道是否正确或不是我在查询生成器中编写的内容是指原始查询。 – Crazy

    回答

    0

    定义关系(more details

    传递给hasOne方法的第一个参数是相关模型的名称。一旦定义了关系,我们可以使用Eloquent的动态属性检索相关记录。动态属性允许您访问关系方法,就好像它们是在模型上定义的属性一样:

    namespace App;

    use Illuminate\Database\Eloquent\Model; 
    
    class User extends Model 
    { 
        /** 
        * Get the phone record associated with the user. 
        */ 
        public function phone() 
        { 
         return $this->hasOne('App\Phone'); 
        } 
    } 
    

    然后你可以像波纹管一样获得连接。

    $phone = User::find(1)->phone; 
    
    +0

    OP想要查询生成器中的解决方案,而不是口才 –

    +0

    这更加可重用,使用框架的目的是什么? :) – Bira

    +0

    我明白了,但可能是OP的口才不舒服。这就是为什么:P –

    相关问题