PHP
laravel join
Inner Join : ->join('contacts', 'users.id', '=', 'contacts.user_id')
Left Join : ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
Right Join : ->rightJoin('posts', 'users.id', '=', 'posts.user_id')
Cross Join : ->crossJoin('colors')
Advance Queries :
-----------------
->join('contacts', function ($join) {
$join->on('users.id', '=', 'contacts.user_id')
->where('contacts.user_id', '>', 5);
})
laravel join
$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();
join in laravel eloquent
$customer = DB::table('customers')
->join('shops', 'customers.shop_id', '=', 'shops.shop_id')
->where('customer_contact', $contact_no)
->get();
join in laravel
$subCategories = Subcategory::join('categories', 'subcategories.category_id', '=', 'categories.id')
->select('subcategories.*', 'categories.name AS cname')
->orderBy('id', 'desc')
->get();
laravel joins eloquent model
User::select('users.*')->join('posts', 'posts.user_id', '=', 'users.id');
laravel join
$latestPosts = DB::table('posts')
->select('user_id', DB::raw('MAX(created_at) as last_post_created_at'))
->where('is_published', true)
->groupBy('user_id');
$users = DB::table('users')
->joinSub($latestPosts, 'latest_posts', function ($join) {
$join->on('users.id', '=', 'latest_posts.user_id');
})->get();
laravel outer join
->join('answers as answers', 'responses.answer_id', '=', 'answers.id', 'left outer')
laravel join
$query = DB::table('posts')
->select('posts.*',
'subcategories.subcategory_title_en',
'subcategories.subcategory_title_bn',
'categories.category_title_en',
'categories.category_title_bn',
'users.*',
'postimages.postimage_thumbnail'
)
->join('subcategories', 'subcategories.subcategory_id', '=', 'posts.subcategory_id')
->join('categories', 'categories.category_id', '=', 'subcategories.parent_category_id')
->join('users', 'users.id', '=', 'posts.user_id')
->join('postimages', 'postimages.post_id', '=', 'posts.post_id')->groupBy('posts.post_id');
join in eloquent model
/**
* Get the user's oldest image.
*/
public function oldestImage()
{
return $this->morphOne(Image::class, 'imageable')->oldestOfMany();
}