How to Use Join in Laravel Query Builder?

Joins in SQL can be a real pain sometimes but Laravel Query builder did its best to tackle Joins. Here is a sample query.

$leads = DB::table( 'leads' )
	->join( 'meta', 'leads.id', '=', 'meta.lead_id' )
	->select( 'leads.*', 'meta.address' )->get();

We can also pass multiple conditions in Join.

$leads = DB::table( 'leads' )
         ->join( 'meta', function ( $join ) {
	       $join->on( 'leads.id', '=', 'meta.lead_id' );
	       $join->orOn( 'leads.id', '=', 'meta.proxy_lead_id' );
	} )
        ->get();

Here is the syntax for right Join.

$leads = DB::table( 'leads' )
          ->rightJoin( 'meta', 'leads.id', '=', 'meta.lead_id' )
          ->select( 'leads.*', 'meta.address' )->get();

And Left Join.

$leads = DB::table( 'leads' )
         ->leftJoin( 'meta', 'leads.id', '=', 'meta.lead_id' )
         ->select( 'leads.*', 'meta.address' )->get();

If you even don’t mention then Laravel by default implements cross join. But we can mention that as well.

$leads = DB::table( 'leads' )
         ->crossJoin( 'meta', 'leads.id', '=', 'meta.lead_id' )
         ->select( 'leads.*', 'meta.address' )->get();

I hope after reading this tutorial about Joins with Query builder in Laravel you can really tackle issues regarding Joins in Laravel. If you have any problems in your projects do leave a comment. We appreciate that.