SQL Joins (Inner, Left, Right and Full Join)
Last Updated :
17 Dec, 2024
SQL joins are the foundation of database management systems, enabling the combination of data from multiple tables based on relationships between columns. Joins allow efficient data retrieval, which is essential for generating meaningful observations and solving complex business queries.
Understanding SQL join types, such as INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, and NATURAL JOIN, is critical for working with relational databases.
In this article, we will cover the different types of SQL joins, including INNER JOIN, LEFT OUTER JOIN, RIGHT JOIN, FULL JOIN, and NATURAL JOIN. Each join type will be explained with examples, syntax, and practical use cases to help us understand when and how to use these joins effectively.
What is SQL Join?
SQL JOIN clause is used to query and access data from multiple tables by establishing logical relationships between them. It can access data from multiple tables simultaneously using common key values shared across different tables. We can use SQL JOIN with multiple tables. It can also be paired with other clauses, the most popular use will be using JOIN with WHERE clause to filter data retrieval.
Example of SQL JOINS
Consider the two tables, Student and StudentCourse, which share a common column ROLL_NO. Using SQL JOINS, we can combine data from these tables based on their relationship, allowing us to retrieve meaningful information like student details along with their enrolled courses.
Student Table
StudentCourse Table

Both these tables are connected by one common key (column) i.e ROLL_NO. We can perform a JOIN operation using the given SQL query:
Query:
SELECT s.roll_no, s.name, s.address, s.phone, s.age, sc.course_id
FROM Student s
JOIN StudentCourse sc ON s.roll_no = sc.roll_no;
Output
| ROLL_NO |
NAME |
ADDRESS |
PHONE |
AGE |
COURSE_ID |
| 1 |
HARSH |
DELHI |
XXXXXXXXXX |
18 |
1 |
| 2 |
PRATIK |
BIHAR |
XXXXXXXXXX |
19 |
2 |
| 3 |
RIYANKA |
SILGURI |
XXXXXXXXXX |
20 |
2 |
| 4 |
DEEP |
RAMNAGAR |
XXXXXXXXXX |
18 |
3 |
| 5 |
SAPTARHI |
KOLKATA |
XXXXXXXXXX |
19 |
1 |
Types of JOIN in SQL
There are many types of Joins in SQL. Depending on the use case, we can use different type of SQL JOIN clause. Below, we explain the most commonly used join types with syntax and examples:
1. SQL INNER JOIN
The INNER JOIN keyword selects all rows from both the tables as long as the condition is satisfied. This keyword will create the result-set by combining all rows from both the tables where the condition satisfies i.e value of the common field will be the same.
Syntax
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
INNER JOIN table2
ON table1.matching_column = table2.matching_column;
Key Terms
- table1: First table.
- table2: Second table
- matching_column: Column common to both the tables.
Note: We can also write JOIN instead of INNER JOIN. JOIN is same as INNER JOIN.

INNER JOIN Example
Let’s look at the example of INNER JOIN clause, and understand it’s working. This query will show the names and age of students enrolled in different courses.
Query:
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM Student
INNER JOIN StudentCourse
ON Student.ROLL_NO = StudentCourse.ROLL_NO;
Output

2. SQL LEFT JOIN
LEFT JOIN returns all the rows of the table on the left side of the join and matches rows for the table on the right side of the join. For the rows for which there is no matching row on the right side, the result-set will contain null. LEFT JOIN is also known as LEFT OUTER JOIN.
Syntax
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;
Key Terms
- table1: First table.
- table2: Second table
- matching_column: Column common to both the tables.
Note: We can also use LEFT OUTER JOIN instead of LEFT JOIN, both are the same.
LEFT JOIN Example
In this example, the LEFT JOIN retrieves all rows from the Student table and the matching rows from the StudentCourse table based on the ROLL_NO column.
Query:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
LEFT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output

3. SQL RIGHT JOIN
RIGHT JOIN returns all the rows of the table on the right side of the join and matching rows for the table on the left side of the join. It is very similar to LEFT JOIN for the rows for which there is no matching row on the left side, the result-set will contain null. RIGHT JOIN is also known as RIGHT OUTER JOIN.
Syntax
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;
Key Terms
- table1: First table.
- table2: Second table
- matching_column: Column common to both the tables.
Note: We can also use RIGHT OUTER JOIN instead of RIGHT JOIN, both are the same.

RIGHT JOIN Example
In this example, the RIGHT JOIN retrieves all rows from the StudentCourse table and the matching rows from the Student table based on the ROLL_NO column.
Query:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
RIGHT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output

4. SQL FULL JOIN
FULL JOIN creates the result-set by combining results of both LEFT JOIN and RIGHT JOIN. The result-set will contain all the rows from both tables. For the rows for which there is no matching, the result-set will contain NULL values.
Syntax
SELECT table1.column1,table1.column2,table2.column1,....
FROM table1
FULL JOIN table2
ON table1.matching_column = table2.matching_column;
Key Terms
- table1: First table.
- table2: Second table
- matching_column: Column common to both the tables.
FULL JOIN Example
This example demonstrates the use of a FULL JOIN, which combines the results of both LEFT JOIN and RIGHT JOIN. The query retrieves all rows from the Student and StudentCourse tables. If a record in one table does not have a matching record in the other table, the result set will include that record with NULL values for the missing fields
Query:
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
FULL JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output
|
NAME
|
COURSE_ID
|
|
HARSH
|
1
|
|
PRATIK
|
2
|
|
RIYANKA
|
2
|
|
DEEP
|
3
|
|
SAPTARHI
|
1
|
|
DHANRAJ
|
NULL
|
|
ROHIT
|
NULL
|
|
NIRAJ
|
NULL
|
|
NULL
|
4
|
|
NULL
|
5
|
|
NULL
|
4
|
5. SQL Natural Join (?)
Natural join can join tables based on the common columns in the tables being joined. A natural join returns all rows by matching values in common columns having same name and data type of columns and that column should be present in both tables.
- Both table must have at least one common column with same column name and same data type.
- The two table are joined using Cross join.
- DBMS will look for a common column with same name and data type. Tuples having exactly same values in common columns are kept in result.
Natural join Example
Look at the two tables below- Employee and Department
|
Employee
|
| Emp_id |
Emp_name |
Dept_id |
| 1 |
Ram |
10 |
| 2 |
Jon |
30 |
| 3 |
Bob |
50 |
|
Department
|
| Dept_id |
Dept_name |
| 10 |
IT |
| 30 |
HR |
| 40 |
TIS |
Problem: Find all Employees and their respective departments.
Solution Query: (Employee) ? (Department)
| Emp_id |
Emp_name |
Dept_id |
Dept_id |
Dept_name |
| 1 |
Ram |
10 |
10 |
IT |
| 2 |
Jon |
30 |
30 |
HR |
| Employee data |
Department data |
Conclusion
SQL joins are essential tools for anyone working with relational databases. Understanding the different types of joins in SQL, like INNER JOIN, LEFT OUTER JOIN, RIGHT JOIN, and FULL JOIN, allows us to combine and query data effectively. With the examples and syntax covered here, we should feel confident applying these SQL join types to our data to retrieve meaningful observations and manage complex queries with ease. Use these SQL join techniques to streamline our data handling and enhance our SQL skills.
FAQs
What are the 4 types of join SQL?
In SQL, the four main types of joins are:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
What is a join in SQL?
A join in SQL is a relational database operation used to combine rows from two or more tables based on a related column between them.
What is the difference between INNER JOIN and LEFT JOIN?
The main difference between INNER JOIN and LEFT JOIN lies in how they handle unmatched rows. INNER JOIN focuses on matched rows only, while LEFT JOIN includes all rows from the left table, with NULLs where there is no match in the right table.
Similar Reads
SQL for Data Science
Mastering SQL (Structured Query Language) has become a fundamental skill for anyone pursuing a career in data science. As data plays an increasingly central role in business and technology, SQL has emerged as the most essential tool for managing and analyzing large datasets. Data scientists rely on
7 min read
Introduction to SQL
What is SQL?
SQL stands for Structured Query Language. It is a standardized programming language used to manage and manipulate relational databases. It enables users to perform a variety of tasks such as querying data, creating and modifying database structures, and managing access permissions. SQL is widely use
11 min read
Difference Between RDBMS and DBMS
Database Management System (DBMS) is a software that is used to define, create, and maintain a database and provides controlled access to the data. Why is DBMS Required?Database management system, as the name suggests, is a management system that is used to manage the entire flow of data, i.e, the i
4 min read
Difference between SQL and NoSQL
Choosing between SQL (Structured Query Language) and NoSQL (Not Only SQL) databases is a critical decision for developers, data engineers, and organizations looking to handle large datasets effectively. Both database types have their strengths and weaknesses, and understanding the key differences ca
6 min read
SQL Data Types
SQL Data Types are very important in relational databases. It ensures that data is stored efficiently and accurately. Data types define the type of value a column can hold, such as numbers, text, or dates. Understanding SQL Data Types is critical for database administrators, developers, and data ana
5 min read
SQL | DDL, DML, TCL and DCL
Data Definition Language (DDL), Data Manipulation Language (DML), Transaction Control Language (TCL), and Data Control Language (DCL) form the backbone of SQL. Each of these languages plays a critical role in defining, managing, and controlling data within a database system, ensuring both structural
6 min read
Setting Up the Environment
SQL Basics
Relational Model in DBMS
The Relational Model represents data and their relationships through a collection of tables. Each table also known as a relation consists of rows and columns. Every column has a unique name and corresponds to a specific attribute, while each row contains a set of related data values representing a r
10 min read
SQL SELECT Query
The select query in SQL is one of the most commonly used SQL commands to retrieve data from a database. With the select command in SQL, users can access data and retrieve specific records based on various conditions, making it an essential tool for managing and analyzing data. In this article, weâll
4 min read
SQL Data Types
SQL Data Types are very important in relational databases. It ensures that data is stored efficiently and accurately. Data types define the type of value a column can hold, such as numbers, text, or dates. Understanding SQL Data Types is critical for database administrators, developers, and data ana
5 min read
SQL | WITH Clause
The SQL WITH clause, also known as Common Table Expressions (CTEs), is a powerful tool that simplifies complex SQL queries, improves readability, and enhances performance by defining temporary result sets that can be reused multiple times. Whether we're working on aggregating data, analyzing large d
5 min read
SQL | GROUP BY
The GROUP BY statement in SQL is used for organizing and summarizing data based on identical values in specified columns. By using the GROUP BY clause, users can apply aggregate functions like SUM, COUNT, AVG, MIN, and MAX to each group, making it easier to perform detailed data analysis. In this ar
5 min read
PHP | MySQL LIMIT Clause
In MySQL the LIMIT clause is used with the SELECT statement to restrict the number of rows in the result set. The Limit Clause accepts one or two arguments which are offset and count.The value of both the parameters can be zero or positive integers. Offset:It is used to specify the offset of the fir
3 min read
SQL LIMIT Clause
The LIMIT clause in SQL is used to control the number of rows returned in a query result. It is particularly useful when working with large datasets, allowing you to retrieve only the required number of rows for analysis or display. Whether we're looking to paginate results, find top records, or jus
4 min read
SQL Distinct Clause
The SQL DISTINCT keyword is used in queries to retrieve unique values from a database. It helps in eliminating duplicate records from the result set. It ensures that only unique entries are fetched. Whether you're analyzing datasets or performing data cleaning, the DISTINCT keyword is Important for
4 min read
SQL Operators
SQL Comparison Operators
SQL Comparison Operators are used to compare two values and check if they meet the specific criteria. Some comparison operators are = Equal to, > Greater than , < Less than, etc. Comparison Operators in SQLThe below table shows all comparison operators in SQL : OperatorDescription=The SQL Equa
3 min read
SQL - Logical Operators
SQL Logical Operators are essential tools used to test the truth of conditions in SQL queries. They return boolean values such as TRUE, FALSE, or UNKNOWN, making them invaluable for filtering, retrieving, or manipulating data. These operators allow developers to build complex queries by combining, n
9 min read
SQL | Arithmetic Operators
Prerequisite: Basic Select statement, Insert into clause, Sql Create Clause, SQL Aliases We can use various Arithmetic Operators on the data stored in the tables. Arithmetic Operators are: + [Addition] - [Subtraction] / [Division] * [Multiplication] % [Modulus] Addition (+) : It is used to perform a
5 min read
SQL | String functions
SQL String Functions are powerful tools that allow us to manipulate, format, and extract specific parts of text data in our database. These functions are essential for tasks like cleaning up data, comparing strings, and combining text fields. Whether we're working with names, addresses, or any form
6 min read
SQL Wildcard Characters
SQL wildcard characters are powerful tools that enable advanced pattern matching in string data. They are especially useful when working with the LIKE and NOT LIKE operators, allowing for efficient searches based on partial matches or specific patterns. By using SQL wildcard characters, we can great
6 min read
SQL AND and OR Operators
The SQL AND and OR operators are used to filter data based on multiple conditions. These logical operators allow users to retrieve precise results from a database by combining various conditions in SELECT, INSERT, UPDATE, and DELETE statements. In this article, we'll learn the AND and OR operators,
3 min read
SQL | Concatenation Operator
The SQL concatenation operator (||) is a powerful feature that allows us to merge two or more strings into a single output. It is widely used to link columns, character strings, and literals in SQL queries. This operator makes it easier to format and present data in a user-friendly way, combining mu
3 min read
SQL | MINUS Operator
The Minus Operator in SQL is used with two SELECT statements. The MINUS operator is used to subtract the result set obtained by first SELECT query from the result set obtained by second SELECT query. In simple words, we can say that MINUS operator will return only those rows which are unique in only
2 min read
SQL | DIVISION
Division in SQL is typically required when you want to find out entities that are interacting with all entities of a set of different types of entities. The division operator is used when we have to evaluate queries that contain the keyword 'all'. When to Use the Division OperatorYou typically requi
4 min read
SQL NOT Operator
The SQL NOT Operator is a logical operator used to negate or reverse the result of a condition in SQL queries. It is commonly used with the WHERE clause to filter records that do not meet a specified condition, helping you exclude certain values from your results. In this article, we will learn ever
3 min read
SQL | BETWEEN & IN Operator
In SQL, the BETWEEN and IN operators are widely used for filtering data based on specific criteria. The BETWEEN operator helps filter results within a specified range of values, such as numbers, dates, or text, while the IN operator filters results based on a specific list of values. Both operators
5 min read
Working with Data
SQL | WHERE Clause
The SQL WHERE clause allows to filtering of records in queries. Whether you're retrieving data, updating records, or deleting entries from a database, the WHERE clause plays an important role in defining which rows will be affected by the query. Without it, SQL queries would return all rows in a tab
4 min read
SQL ORDER BY
The ORDER BY clause in SQL is a powerful feature used to sort query results in either ascending or descending order based on one or more columns. Whether you're presenting data to users or analyzing large datasets, sorting the results in a structured way is essential. In this article, weâll explain
5 min read
SQL INSERT INTO Statement
The INSERT INTO statement is a fundamental SQL command used to add new rows of data into a table in a database. It is one of the most commonly used SQL statements for manipulating data and plays a key role in database management. This article will explore the SQL INSERT INTO statement in detail, sho
8 min read
SQL UPDATE Statement
In SQL, the UPDATE statement is used to modify existing records in a table. Whether you need to update a single record or multiple rows at once, SQL provides the necessary functionality to make these changes. The UPDATE statement is essential for maintaining the integrity of your data by allowing yo
4 min read
SQL DELETE Statement
The SQL DELETE statement is one of the most commonly used commands in SQL (Structured Query Language). It allows you to remove one or more rows from the table depending on the situation. Unlike the DROP statement, which removes the entire table, the DELETE statement removes data (rows) from the tabl
4 min read
SQL Data Types
SQL Data Types are very important in relational databases. It ensures that data is stored efficiently and accurately. Data types define the type of value a column can hold, such as numbers, text, or dates. Understanding SQL Data Types is critical for database administrators, developers, and data ana
5 min read
ALTER (RENAME) in SQL
In SQL, making structural changes to a database is often necessary. Whether it's renaming a table or a column, adding new columns, or modifying data types, the SQL ALTER TABLE command plays a critical role. This command provides flexibility to manage and adjust database schemas without affecting the
4 min read
SQL ALTER TABLE
The SQL ALTER TABLE statement is a powerful tool that allows you to modify the structure of an existing table in a database. Whether you're adding new columns, modifying existing ones, deleting columns, or renaming them, the ALTER TABLE statement enables you to make changes without losing the data s
5 min read
SQL Queries
SQL | Subquery
In SQL, subqueries are one of the most powerful and flexible tools for writing efficient queries. A subquery is essentially a query nested within another query, allowing users to perform operations that depend on the results of another query. This makes it invaluable for tasks such as filtering, cal
5 min read
Nested Queries in SQL
Nested queries in SQL are a powerful tool for retrieving data from databases in a structured and efficient manner. They allow us to execute a query within another query, making it easier to handle complex data operations. This article explores everything we need to know about SQL nested queries, inc
7 min read
Joining Three or More Tables in SQL
SQL joins are an essential part of relational database management, allowing users to combine data from multiple tables efficiently. When the required data is spread across different tables, joining these tables efficiently is necessary. In this article, weâll cover everything we need to know about j
5 min read
Inner Join vs Outer Join
Inner Join and Outer Join are the types of join. The inner join has the work to return the common rows between the two tables, whereas the Outer Join has the work of returning the work of the inner join in addition to the rows that are not matched. Let's discuss both of them in detail in this artic
9 min read
SQL | Join (Cartesian Join & Self Join)
In SQL, CARTESIAN JOIN (also known as CROSS JOIN) and SELF JOIN are two distinct types of joins that help combine rows from one or more tables based on certain conditions. While both joins may seem similar, they serve different purposes. Letâs explore both in detail. CARTESIAN JOINA Cartesian Join o
4 min read
How to Get the Names of the Table in SQL
Retrieving table names in SQL is a common task that aids in effective database management and exploration. Whether we are dealing with a single database or multiple databases, knowing how to retrieve table names helps streamline operations. SQL provides the INFORMATION_SCHEMA.TABLES view, which offe
3 min read
SQL | Subquery
In SQL, subqueries are one of the most powerful and flexible tools for writing efficient queries. A subquery is essentially a query nested within another query, allowing users to perform operations that depend on the results of another query. This makes it invaluable for tasks such as filtering, cal
5 min read
How to Fetch Duplicate Rows in a Table?
Identifying duplicate rows in a database table is a common requirement, especially when dealing with large datasets. Duplicates can arise due to data entry errors, system migrations, or batch processing issues. In this article, we will explain efficient SQL techniques to identify and retrieve duplic
3 min read
Data Manipulation
SQL Joins (Inner, Left, Right and Full Join)
SQL joins are the foundation of database management systems, enabling the combination of data from multiple tables based on relationships between columns. Joins allow efficient data retrieval, which is essential for generating meaningful observations and solving complex business queries. Understandi
6 min read
SQL Inner Join
SQL INNER JOIN is a powerful and frequently used operation in relational databases. It allows us to combine two or more tables based on a related column, returning only the records that satisfy the join condition This article will explore the fundamentals of INNER JOIN, its syntax, practical example
4 min read
SQL Outer Join
SQL Outer Joins allow retrieval of rows from two or more tables based on a related column. Unlike inner Joins, they also include rows that do not have a corresponding match in one or both of the tables. This capability makes Outer Joins extremely useful for comprehensive data analysis and reporting,
4 min read
SQL Self Join
A Self Join in SQL is a powerful technique that allows one to join a table with itself. This operation is helpful when you need to compare rows within the same table based on specific conditions. A Self Join is often used in scenarios where there is hierarchical or relational data within the same ta
4 min read
How to Group and Aggregate Data Using SQL?
In SQL, grouping and aggregating data are essential techniques for analyzing datasets. When dealing with large volumes of data, we often need to summarize or categorize it into meaningful groups. The combination of the GROUP BY clause and aggregate functions like COUNT(), SUM(), AVG(), MIN(), and MA
4 min read
SQL HAVING Clause with Examples
The HAVING clause in SQL is used to filter query results based on aggregate functions. Unlike the WHERE clause, which filters individual rows before grouping, the HAVING clause filters groups of data after aggregation. It is commonly used with functions like SUM(), AVG(), COUNT(), MAX(), and MIN().
4 min read
Data Analysis
CTE in SQL
In SQL, a Common Table Expression (CTE) is an essential tool for simplifying complex queries and making them more readable. By defining temporary result sets that can be referenced multiple times, a CTE in SQL allows developers to break down complicated logic into manageable parts. CTEs help with hi
6 min read
Window Functions in SQL
SQL window functions are essential for advanced data analysis and database management. They enable calculations across a specific set of rows, known as a "window," while retaining the individual rows in the dataset. Unlike traditional aggregate functions that summarize data for the entire group, win
5 min read
Pivot and Unpivot in SQL
In SQL, PIVOT and UNPIVOT are powerful operations used to transform data and make it more readable, efficient, and manageable. These operations allow us to manipulate tables by switching between rows and columns, which can be crucial for summarizing data, reporting, and data analysis. Understanding
4 min read
Data Preprocessing in Data Mining
Data preprocessing is the process of preparing raw data for analysis by cleaning and transforming it into a usable format. In data mining it refers to preparing raw data for mining by performing tasks like cleaning, transforming, and organizing it into a format suitable for mining algorithms. Goal i
6 min read
SQL Functions (Aggregate and Scalar Functions)
SQL Functions are built-in programs that are used to perform different operations on the database. There are two types of functions in SQL: Aggregate FunctionsScalar FunctionsSQL Aggregate FunctionsSQL Aggregate Functions operate on a data group and return a singular output. They are mostly used wit
4 min read
SQL Date and Time Functions
Handling date and time data in SQL is essential for many database operations. SQL provides a variety of date and time functions that help users work with date values, perform calculations, and format them as needed. Whether youâre adding intervals to dates, extracting parts of a date, or formatting
4 min read
SQL | Date Functions (Set-1)
SQL Date Functions are essential for managing and manipulating date and time values in SQL databases. They provide tools to perform operations such as calculating date differences, retrieving current dates and times and formatting dates. From tracking sales trends to calculating project deadlines, w
5 min read
SQL | Date Functions (Set-2)
SQL Date Functions are powerful tools that allow users to manipulate, extract , and format date and time values within SQL databases. These functions simplify handling temporal data, making them indispensable for tasks like calculating intervals, extracting year or month values, and formatting dates
5 min read
SQL | Numeric Functions
SQL Numeric Functions are essential tools for performing mathematical and arithmetic operations on numeric data. These functions allow you to manipulate numbers, perform calculations, and aggregate data for reporting and analysis purposes. Understanding how to use SQL numeric functions is important
4 min read
SQL Aggregate functions
SQL Aggregate Functions are used to perform calculations on a set of rows and return a single value. They are often used with the GROUP BY clause in SQL to summarize data for each group. Commonly used aggregate functions include COUNT(), SUM(), AVG(), MIN(), and MAX(). In this article, we'll learn t
3 min read