LEFT/RIGHT/FULL OUTER JOIN: Functions
Module: Joins & Relationships
**LEFT JOIN Syntax:**
SELECT
left_table.column1,
right_table.column2
FROM left_table
LEFT JOIN right_table ON left_table.id = right_table.foreign_key;
-- All left_table rows appear
-- right_table columns NULL when no match
**Example:**
SELECT
c.name,
o.id AS order_id,
o.total
FROM customers c
LEFT JOIN orders o ON c.id = o.customer_id;
-- All customers appear
-- order_id and total are NULL for customers without orders
**RIGHT JOIN Syntax:**
SELECT
left_table.column1,
right_table.column2
FROM left_table
RIGHT JOIN right_table ON left_table.foreign_key = right_table.id;
-- All right_table rows appear
-- left_table columns NULL when no match
**Rewrite RIGHT JOIN as LEFT JOIN:**
-- RIGHT JOIN
SELECT * FROM orders o RIGHT JOIN customers c ON o.customer_id = c.id;
-- Equivalent LEFT JOIN (preferred)
SELECT * FROM customers c LEFT JOIN orders o ON c.id = o.customer_id;
**FULL OUTER JOIN Syntax:**
SELECT
left_table.column1,
right_table.column2
FROM left_table
FULL OUTER JOIN right_table ON left_table.id = right_table.foreign_key;
-- All rows from both tables
-- NULL on either side when no match
**Finding Unmatched Rows:**
-- Customers without orders