1Inner Join : ->join('contacts', 'users.id', '=', 'contacts.user_id')
2Left Join : ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
3Right Join : ->rightJoin('posts', 'users.id', '=', 'posts.user_id')
4Cross Join : ->crossJoin('colors')
5
6Advance Queries :
7-----------------
8 ->join('contacts', function ($join) {
9 $join->on('users.id', '=', 'contacts.user_id')
10 ->where('contacts.user_id', '>', 5);
11 })
12
1use Illuminate\Support\Facades\DB;
2
3$users = DB::table('users')
4 ->join('contacts', 'users.id', '=', 'contacts.user_id')
5 ->join('orders', 'users.id', '=', 'orders.user_id')
6 ->select('users.*', 'contacts.phone', 'orders.price')
7 ->get();
1$users = DB::table('users')
2 ->join('contacts', 'users.id', '=', 'contacts.user_id')
3 ->join('orders', 'users.id', '=', 'orders.user_id')
4 ->select('users.*', 'contacts.phone', 'orders.price')
5 ->get();
1$users = DB::table('users')
2 ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
3 ->get();
4
5$users = DB::table('users')
6 ->rightJoin('posts', 'users.id', '=', 'posts.user_id')
7 ->get();
1$latestPosts = DB::table('posts')
2 ->select('user_id', DB::raw('MAX(created_at) as last_post_created_at'))
3 ->where('is_published', true)
4 ->groupBy('user_id');
5
6$users = DB::table('users')
7 ->joinSub($latestPosts, 'latest_posts', function ($join) {
8 $join->on('users.id', '=', 'latest_posts.user_id');
9 })->get();