Difference between Inner Join and Outer Join
Key difference: Joins in SQL are performed to combine the data of two different tables. An Inner Join is a condition that results in the rows which satisfy the ‘where’ clause in “all the tables”; whereas an Outer Join is a condition that results in those rows which satisfy the ‘where’ clause in “at least one of the tables”.
include("ad4th.php"); ?>On implementing the joins, the temporary tables are created, these are based on columns. There should be always two tables, for the join conditions. These conditions, then merge the respective components of one table with the other components, and give rise to an entirely new table. The goal of these tables is to extract the meaningful and required data or information. Depending on the conditions, there are two types of joins, the inner and outer joins.
An “inner join” is an application oriented join. It is used in those database tables which enforces the referential integrity. These are those join fields which guarantee no NULL conditions. The inner join are mostly preferred in many transactions as they rely on the ACID (Atomicity, Consistency, Isolation, Durability) standards. They keep the data secured and integrated as they are reliable in the relational databases. Along with the relational databases, they are also applicable in the data warehouses.
include("ad3rd.php"); ?>SQL INNER JOIN Syntax:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables.
The inner joins depend on the selection of the database designs and characteristics. Accordingly, these inner joins are used in the Equi-Joins and Natural Joins. In the Equi Join, there is a specific type of comparison which is is used to equalize the two given tables. Hence, this table uses the equal-predicate. The natural join is a type of Equi join.
Syntax for Equi Join is as follows:
SELECT *
FROM table1, table 2
WHERE table1.coloumn_name =table2.coloumn_name;
If the columns in an equi-join have the same name, then the respective SQL version provides an optional shorthand notation that can be expressed by the USING construct as:
SELECT *
FROM table1 INNER JOIN table2 USING (column_name);
Syntax for Natural Join is as follows:
SELECT *
FROM table1 NATURAL JOIN table2;
An “outer join” does not need the matching conditions for the records. This join condition maintains all the other records, besides the non-matched records. This join is further distributed in left, right and full outer join conditions, which are implemented according to the desired table conditions and attributes.
Left Outer Join
The LEFT JOIN keyword returns all rows from the left table (table1), with the matching rows in the right table (table2). It results “NULL” in the right side when there is no match.
The syntax for Left Outer Join follows:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
Right Outer Join
The RIGHT JOIN keyword returns all rows from the right table (table2), with the matching rows in the left table (table1). The result is NULL in the left side when there is no match.
The syntax for Right Outer Join follows:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
Full Outer Join
The FULL OUTER JOIN keyword returns all rows from the left table (table1) and right table (table2). The FULL OUTER JOIN keyword combines both the result of LEFT and RIGHT joins.
The syntax for Full Outer Join is:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
Comparison between Inner Join and Outer Join:
|
Inner Join |
Outer Join |
Basic function |
Inner joins are basically used to find matching rows between 2 tables. |
Outer join retains the rows of either table, or both tables. |
Existence of common variables |
Here the common variable has to compulsorily be in both the tables. |
Here the variable is dependent on only the first table which may or may not be present in the second table. |
Returns |
Inner join will only return rows in which there is a match based on the join predicate. |
Outer join will return all the rows whether they are match-based or not matched-based on the join predicate. |
Used to |
It is used to view the records only when the records are present on both the tables. |
It is used to view all the records in just one table. |
Applicable in |
They are applicable in: Equi-Join and Natural Join
|
They are applicable as: Left Outer Join Right Outer Join Full Outer Join |
Add new comment