SQL JOIN Operations
Combining data from multiple tables
INNER JOIN
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON u.id = o.user_id; # matching rows only
LEFT JOIN
SELECT u.name, o.total
FROM users u
LEFT JOIN orders o ON u.id = o.user_id; # all left + matching right
RIGHT JOIN
SELECT u.name, o.total
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id; # all right + matching left
FULL OUTER JOIN
SELECT u.name, o.total
FROM users u
FULL OUTER JOIN orders o ON u.id = o.user_id; # all rows from both
CROSS JOIN
SELECT *
FROM colors
CROSS JOIN sizes; # cartesian product
Multiple Joins
SELECT u.name, o.total, p.name
FROM users u
INNER JOIN orders o ON u.id = o.user_id
INNER JOIN products p ON o.product_id = p.id; # chain joins
Self Join
SELECT e.name, m.name AS manager
FROM employees e
LEFT JOIN employees m ON e.manager_id = m.id; # join table to itself