
In SQL, we can join tables using several types of joins to combine data from two or more tables. Two commonly used types of joins are the Inner Join, Left Join, and Right Join. Inner Join is used to combine data from two tables based on a common column, while Left Join and Right Join are used to include all the rows from one table and matching rows from another table.

Left Join
A Left Join, also known as a Left Outer Join, returns all the rows from the left table and the matching rows from the right table. If there are no matching rows in the right table, the result will contain NULL values for the columns of the right table.
The syntax for a Left Join is as follows:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Here, table1
is the left table, and table2
is the right table. We are joining these two tables based on the common column column_name
, and the resulting table will contain all the rows from table1
and the matching rows from table2
.
Example
Suppose we have two tables, employees
and departments
. The employees
table contains information about the employees of a company, including their names, salaries, and department IDs. The departments
table contains information about the various departments in the company, including their names and department IDs.
Employees Table:
employee_id | employee_name | salary | department_id |
---|---|---|---|
1 | John Smith | 50000.0 | 1 |
2 | Jane Doe | 60000.0 | 2 |
3 | Bob Johnson | 55000.0 | NULL |
4 | Mary White | 70000.0 | 2 |
5 | Joe Black | 45000.0 | 3 |
Departments Table:
department_id | department_name |
---|---|
1 | Accounting |
2 | Marketing |
3 | IT |
To get a list of all employees and their corresponding departments, including those who are not assigned to any department, we can use Left Join as follows:
SELECT employees.employee_name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;
In this query, we are joining the employees
and departments
tables based on the common column department_id
. The Left Join ensures that all rows from employees
are included in the result set, even if there is no matching department in departments
. The query returns the employee_name
and department_name
for each row, with NULL values for department_name
where there is no matching department.
Output:
employee_name | department_name |
---|---|
John Smith | Accounting |
Jane Doe | Marketing |
Bob Johnson | NULL |
Mary White | Marketing |
Joe Black | IT |
Right Join
A Right Join is similar to a Left Join, but it returns all the rows from the right table and the matching rows from the left table. This means that if there are no matching rows in the left table, the result set will still include all the rows from the right table. The syntax for a Right Join is as follows:
SELECT column_names
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
In this case, table1
is the left table and table2
is the right table. We join the two tables based on the common column column_name
, and the resulting table will contain all the rows from table2
and the matching rows from table1
.
Example
To illustrate a Right Join, we can use the same employees
and departments
tables as in the previous example, but this time we want to get a list of all departments and their corresponding employees, including departments that have no employees assigned. The query for this would be:
SELECT employees.employee_name, departments.department_name
FROM departments
RIGHT JOIN employees
ON departments.department_id = employees.department_id;
In this query, we join the departments
and employees
tables based on the common column department_id
. The Right Join ensures that all rows from departments
are included in the result set, even if there are no matching employees in employees
. The query returns the employee_name
and department_name
for each row, with NULL values for employee_name
where there is no matching employee.
Output:
employee_name | department_name |
---|---|
John Smith | Accounting |
Jane Doe | Marketing |
Mary White | Marketing |
NULL | IT |
Conclusion
Left Join and Right Join are essential tools for combining data from multiple tables in SQL. They are used to match data between tables based on a common column and handle unmatched rows in different ways. With these operators at your disposal, you can create more complex and sophisticated data analyses that draw on data from multiple sources.
Different types of SQL joins, including Inner Join, Left and Right Join, Full Outer Join, and Self Join, allow you to combine data from multiple tables in different ways. By understanding these different join types, you can create more sophisticated data analyses and extract insights from your data more efficiently.