SQL Joins
SQL Joins
SQL Join operation combines data or rows from two or more tables based on a common field
between them.
In this article, we will learn about Joins in SQL, covering JOIN types, syntax, and examples.
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.
Student:
StudentCourse :
Both these tables are connected by one common key (column) i.e ROLL_NO.
Output:
There are many types of Joins in SQL. Depending on the use case, you can use different type of SQL
JOIN clause. Here are the frequently used SQL JOIN types:
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
NATURAL 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;
Here,
Note: We can also write JOIN instead of INNER JOIN. JOIN is same as INNER JOIN.
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.
Output:
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;
Here,
Note: We can also use LEFT OUTER JOIN instead of LEFT JOIN, both are the same.
LEFT JOIN Example
Let’s look at the example of LEFT JOIN clause, and understand it’s working
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
LEFT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output:
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;
Here,
Note: We can also use RIGHT OUTER JOIN instead of RIGHT JOIN, both are the same.
Let’s look at the example of RIGHT JOIN clause, and understand it’s working
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
RIGHT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
Output:
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;
Here,
Let’s look at the example of FULL JOIN clause, and understand it’s working
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
SAPTARH
1
I
DHANRAJ NULL
ROHIT NULL
NIRAJ NULL
NULL 4
NAME COURSE_ID
NULL 5
NULL 4
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.
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.
Employee
1 Ram 10
2 Jon 30
3 Bob 50
Department
Dept_id Dept_name
10 IT
Department
30 HR
40 TIS
Emp_nam
Emp_id e Dept_id Dept_id Dept_name
1 Ram 10 10 IT
2 Jon 30 30 HR