2016-06-20 172 views
0

我试着写在Laravel查询查询与多个条件

SELECT table1. * , table2. * 
FROM table1 
LEFT JOIN table2 ON 
(table1.id = table2.id 
AND (
     table2.field = '' 
     OR table2.field >= '0' 
    ) 
) 
WHERE table.id =id 

此查询我有一个问题,如何内部AND (...)添加到查询laravel?以下是我迄今为止

$query = Table::select(DB::Raw('table1.*, table2.*')) 
->leftJoin('table2', function($join) { 
    $join->on('table1.id', '=', 'table2.id') 

    ->where('table2.field', '=', '') 
    ->orwhere('table2.field', '=', '50'); 
    }) 
->where('table1.id', BaseController::getCurrentUser()->id) 
->get(); 

我想在哪里以及如何添加AND...

+0

小幅盘整有一个类似这样的语句后semicolen:$查询 - > where('table2.field','') - > orWhere('table2.field',50); –

回答

2

你需要有AND一部分的ON一部分?如果你把它移动到您的查询的WHERE一部分,你可以使用类似

$query = Table::select('table1.*', 'table2.*') 
->leftJoin('table2', 'table1.id', '=', 'table2.id') 
->where('table1.id', BaseController::getCurrentUser()->id) 
->where(function ($query){ 
    $query->where('table2.field', '') 
    ->orWhere('table2.field', 50) 
}) 

结果应该是一样的,从您的原始查询