join in eloquent laravel 5.8 code example

Example 1: join in laravel eloquent

$customer = DB::table('customers')
                ->join('shops', 'customers.shop_id', '=', 'shops.shop_id')
                ->where('customer_contact', $contact_no)
                ->get();

Example 2: join in eloquent laravel 5.8

->leftJoin('reg-session as rs', function ($q) use ($es) {
    $q->on('rs.regID', '=', 'event-registration.regID')
        ->on('rs.personID', '=', 'p.personID')
        ->on('rs.sessionID', '=', 'es.sessionID')
        ->where('es.sessionID', '=', $es->sessionID);
})
  
  
  $sub1 = DB::table('membership_years')
    ->select('member_id', DB::raw('MAX(membership_year) AS max_my'))
    ->groupBy('member_id');

$sub2 = DB::table('membership_years as my1')
    ->select('my1.*')
    ->join(DB::raw('(' . $sub1->toSql() . ') my2'),
            function ($join) {
                $join
                    ->on('my1.member_id', '=', 'my2.member_id')
                    ->on('my1.membership_year', '=', 'my2.max_my');
            });

$query = DB::table('membership as m')
    ->select('my.membership_year', 'm.*')
    ->join(DB::raw('(' . $sub2->toSql() . ') my'), 'm.id', '=', 'my.member_id')
    ->orderBy('m.id');

Tags:

Sql Example