如何在laravel 5.3中创建select join多个条件

时间:2016-11-21 13:28:30

标签: laravel laravel-5

如何在laravel 5.3中创建select join多个条件

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

1 个答案:

答案 0 :(得分:0)

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