2016-11-21 98 views
0

如何在laravel中創建select加入多個條件5.3如何在laravel中創建select加入多個條件5.3

SQL SELECT語句。

SELECT table_1.column_1 
     ,table_2.column_1 
     ,table_3.column_1 
FROM table_1 
LEFT JOIN table_2 
ON table_1.column_1 = table_2.column_1 
LEFT JOIN table_3 
ON table_1.column_2 = table_3.column_2 
AND table_3.column_3 <= NOW() 
AND ( table_3.column_4 >= NOW() 
     OR table_3.column_4 = 0 
    ) 
WHERE table_1.column_1 = '0000000001' 

我想將SQL語句轉換爲laravel select。 我嘗試。

$result = DB::table('table_1') 
      ->select('table_1.column_1', 'table_2.column_1', 'table_3.column_1') 
      ->leftJoin('table_1', 'table_1.column_1', '=', 'table_2.column_1') 
      ->leftJoin('table_3', 'table_1.column_2', '=', 'table_3.column_2') 
      ->where('table_1', $_POST['id']) 
      ->get(); 
+0

你試圖把和條件的WHERE? 'DB :: table('table_1') - > select('table_1.column_1','table_2.column_1','table_3.column_1') - > leftJoin('table_1','table_1.column_1','=', 'table_2.column_1') - > leftJoin('table_3','table_1.column_2','=','table_3.column_2') - > where('table_1.column_1',$ _POST ['id']) - > ('table_3.column_3','> =',NOW()) - > where > orWhere('table_3.column_4','0'); }) - > get();' – Sefran2

回答

1
DB::table('table_1') 
    ->select('table_1.column_1', 'table_2.column_1', 'table_3.column_1')    
    ->leftJoin('table_1', 'table_1.column_1', '=', 'table_2.column_1') 
    ->leftJoin('table_3', 'table_1.column_2', '=', 'table_3.column_2') 
    ->where('table_1.column_1', $_POST['id']) 
    ->where('table_3.column_3','>=', NOW()) 
    ->where(function($query) { 
     $query->where('table_3.column_4', '>=', NOW()) 
      ->orWhere('table_3.column_4','0'); 
    }) 
    ->get();