DEV Community


Posted on • Originally published at


Inner Join Query In Laravel 9 Example

In this article, we will see the inner join query in the laravel 9 examples. Also, see how to join two tables in laravel 9.

In laravel 9 you can use group by query same as PHP. So, we will also see laravel 9 inner join query with group by.

The query builder may also be used to add join clauses to your queries. To perform a basic "inner join", you may use the join method on a query builder instance.

So, let's see an example of laravel 9 joining two tables, inner join in laravel 9, join query in laravel 9, laravel 9 inner join group by, inner join query in MySQL, and subquery joins in laravel 9

For the laravel inner join query example, we need the first argument passed to the join method to be the name of the table you need to join to, while the remaining arguments specify the column constraints for the join.

You may even join multiple tables in a single query and inner join query use in laravel 6, laravel 7, laravel 8, laravel 9.

SQL Query:

In this example, we will create a users table and countries table. we will add the country_id foreign key to the user's table. So, when I get users at that time we will get the country name from country_id using an inner join.

SELECT column_name(s)
FROM table1
ON table1.column_name = table2.column_name;
Enter fullscreen mode Exit fullscreen mode

Read Also: Group By Query In Laravel 9 Example

select `users`.`id`, `users`.`name`, `users`.`email`, `countries`.`name` as `country_name` 
from `users` 
inner join `countries` on `countries`.`id` = `users`.`country_id`
Enter fullscreen mode Exit fullscreen mode

Laravel Query:

In this example, select data like id, name email, and country name but if you want all fields then you can use * to select all data.

public function index()
    $users = User::select('', '', '', ' as country_name')
            ->join('countries', '', '=', 'users.country_id')
Enter fullscreen mode Exit fullscreen mode

Using DB:

use Illuminate\Support\Facades\DB;

$users = DB::table('users')
            ->join('contacts', '', '=', 'contacts.user_id')
            ->join('orders', '', '=', 'orders.user_id')
            ->select('users.*', '', 'orders.price')
Enter fullscreen mode Exit fullscreen mode

Subquery Joins with groupBy() Function

In this example, we will retrieve a collection of users where each user record also contains the created_at timestamp of the user's most recently published blog post.

$posts = DB::table('posts')
                   ->select('user_id', DB::raw('MAX(created_at) as last_post_created_at'))
                   ->where('is_published', true)
Enter fullscreen mode Exit fullscreen mode

Read Also: Order By Query In Laravel 9 Example

Laravel Join() with 3 Tables

Now, we will give an example of joining 3 tables in laravel and all tables are connected with each other.

$users = User::join('posts', 'posts.user_id', '=', '')
              ->join('comments', 'comments.post_id', '=', '')
              ->get(['users.*', 'posts.descrption']);
Enter fullscreen mode Exit fullscreen mode

You might also like:

Read Also: Laravel 8 Many To Many Polymorphic Relationship
Read Also: How To Get Current Week Records In MySQL Query

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git