mysql
  • laravel
  • laravel-query-builder
  • 2017-09-26 54 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 –

    相關問題