Scenario
Imagine your online store now has two tables: Products Table:
Orders Table:
We’ll use these tables to explore joins.
What is a Join?
A join connects two or more tables by matching rows using a common column, typically a primary key in one table and a foreign key in the other.
Types of Joins
SQL Server supports several types of joins:- INNER JOIN: Returns rows with matching values in both tables.
- LEFT JOIN (or LEFT OUTER JOIN): Returns all rows from the left table and matching rows from the right table. Missing matches are filled with
NULL. - RIGHT JOIN (or RIGHT OUTER JOIN): Returns all rows from the right table and matching rows from the left table. Missing matches are filled with
NULL. - FULL JOIN (or FULL OUTER JOIN): Returns all rows when there’s a match in either table. Missing values are filled with
NULL. - CROSS JOIN: Returns the Cartesian product of both tables (every combination of rows).
INNER JOIN: Matching Rows Only
Suppose you want to find out the products that have been ordered along with the quantity.
Here, only rows with matching
product_id values in both tables are returned.
LEFT JOIN: Include All Rows from the Left Table
What if you want to see all products, even those that haven’t been ordered? Use a LEFT JOIN.
This includes rows from
products even if there’s no matching product_id in orders.
RIGHT JOIN: Include All Rows from the Right Table
Similarly, if you want to see all orders, even if the products are missing in theproducts table, use a RIGHT JOIN.
FULL JOIN: All Rows from Both Tables
To get all rows from both tables, use a FULL JOIN.
This will include rows that have no match in either table, filling in
NULL values where necessary.