My regular query is like this :
SELECT e.field1, b.field2, c.field3, d.field4, a.field5 , a.field6
FROM table1 a
LEFT JOIN table2 b ON a.field2=b.field2
LEFT JOIN table3 c ON a.field2=c.field2 AND a.field3=c.field3
WHERE a.field6 LIKE '%bintara%' OR b.field2 LIKE '%bintara%' OR b.field7 LIKE '%bintara%'
ORDER BY e.field1, b.field2, c.field3, a.field5
I change to query builder like this :
$test = DB::table('table1 AS a')
->leftJoin('table2 AS b', 'a.field2', '=', 'b.field2')
->leftJoin('table3 AS c', function($join){
$join->on('a.field2', '=', 'c.field2');
$join->on(DB::raw('a.field3 = c.field3'), DB::raw(''), DB::raw(''));
})
->select('e.field1', 'b.field2', 'c.field3', 'd.field4', 'a.field5', 'a.field6')
->where('a.field6', 'LIKE', '%$bintara%')
->orWhere('b.field2', 'LIKE', '%$bintara%')
->orderBy('e.field1', 'ASC')
->orderBy('b.field2', 'ASC')
->orderBy('c.field3', 'ASC')
->orderBy('ca.field5', 'ASC')
->get();
Is that true?