Content
INNER JOIN returns only rows that have matching values in both tables. The most common type of JOIN.
Basic INNER JOIN
SELECT orders.id, customers.name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id;
INNER JOIN Multiple Tables
SELECT o.id, c.name, p.product_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id
INNER JOIN order_items oi ON o.id = oi.order_id
INNER JOIN products p ON oi.product_id = p.id;
INNER JOIN with Conditions
SELECT o.id, c.name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id
WHERE o.status = 'completed';
Self JOIN
SELECT e.name as employee, m.name as manager
FROM employees e
INNER JOIN employees m ON e.manager_id = m.id;
INNER JOIN vs WHERE
-- Modern syntax (preferred)
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.id;
-- Old syntax
SELECT * FROM orders, customers WHERE orders.customer_id = customers.id;
Generate INNER JOIN Queries
AI2sql creates optimal JOIN queries.


