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