SQL·Средний·6 мин
JOIN — собираем данные из двух таблиц
JOIN склеивает таблицы по общему полю. INNER, LEFT, RIGHT — разные стратегии. Без JOIN-ов работать аналитиком невозможно.
Зачем JOIN
В реальной БД данные раскиданы по разным таблицам. Заказы в одной, клиенты в другой. Чтобы получить «имя клиента + сумма заказа» — нужен JOIN.
INNER JOIN
Берёт только те строки, у которых есть пара в обеих таблицах.
SELECT c.name, o.total
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id;
Клиенты без заказов в результат не попадут.
LEFT JOIN
Сохраняет ВСЕ строки из левой таблицы. Если пары справа нет — будут NULL.
SELECT c.name, COUNT(o.id) AS orders_count
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
GROUP BY c.name;
Тут увидишь даже клиентов без заказов (с orders_count = 0).
Когда какой использовать
- INNER — нужны только связанные записи
- LEFT — нужны все из левой, даже без пар справа
- RIGHT — то же, но с правой (редко используется на практике)
💡 90% работы аналитика — это
LEFT JOIN. INNER даёт лишь то что точно совпало.