Типы JOIN
- INNER JOIN — возвращает только строки, где условие выполнено в обеих таблицах. Наиболее распространён
- LEFT JOIN — все строки левой таблицы + соответствующие из правой (или NULL если нет совпадения)
- RIGHT JOIN — зеркало LEFT JOIN. Используется редко
- FULL OUTER JOIN — все строки обеих таблиц, NULL где нет совпадения
Пример
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON o.user_id = u.id
WHERE o.status = 'paid';
Производительность
JOIN по проиндексированным колонкам (обычно foreign key) выполняется быстро. JOIN по неиндексированным полям — дорого. EXPLAIN покажет, используется ли индекс.