In the vast realm of databases, the SQL JOIN operation stands as a powerful tool for combining information from different tables. This article will delve into the intricacies of SQL JOIN, unraveling its types and applications in a user-friendly manner.
SQL JOIN, in essence, is about merging records from two or more tables in a database, creating a unified dataset. Let's embark on a journey through the five ANSI standard SQL JOIN types:
1. Inner Join
The SQL INNER JOIN, often known as a simple join, is the most common type. It selectively combines rows from tables based on a common field, presenting a similar dataset.
2. Left Outer Join
With SQL LEFT OUTER JOIN, all records from the left table are included, and matching records from the right table are appended. Non-matching entries in the right table are filled with NULL values.
3. Right Outer Join
Conversely, the SQL RIGHT OUTER JOIN retains all records from the right table, supplementing with matching entries from the left table. Non-matching records from the left table receive NULL values.
4. Full Outer Join
A SQL FULL OUTER JOIN combines all records from both tables. Where there's no match, the result includes NULL values, creating a comprehensive dataset.
5. Cross Join
SQL CROSS JOIN creates a Cartesian product, combining each row from the first table with every row from the second table. It results in a large dataset containing all possible combinations.
SQL JOIN becomes indispensable when:
Let's illuminate the concept with a practical example involving two tables: Customer and Payment.
SELECT cus_id, cus_name, amount, cus_age
FROM Customer c, PAYMENT p
WHERE c.ID = p.CUS_ID;
This query combines relevant information from both tables, showcasing a unified result set.
cus_id | cus_name | amount | cus_age |
---|---|---|---|
001 | Customer1 | 45000.00 | 1000 |
002 | Customer2 | 40000.00 | 2000 |
003 | Customer3 | 27000.00 | 1000 |
004 | Customer4 | 25000.00 | 2000 |
005 | Customer5 | 20000.00 | 1000 |
006 | Customer6 | 18000.00 | 1000 |
007 | Customer7 | 15000.00 | 1000 |
008 | Customer8 | 14000.00 | 2000 |
009 | Customer9 | 13000.00 | 2000 |