JOIN — мощнейший инструмент в арсенале SQL. Но многие путаются в типах. Разбираем на пальцах:🔸 INNER JOIN
Что делает: оставляет только совпадающие строки из обеих таблиц.
Когда использовать: когда нужны только те записи, у которых есть соответствие.
SELECT *
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id;
🧠 Best practice: это дефолтный выбор. Работает быстрее, т.к. отбрасывает всё "лишнее".
🔸 LEFT JOIN
Что делает: возвращает все строки из левой таблицы и
NULL из правой, если нет совпадения.Когда использовать: когда нужно сохранить всё из первой таблицы, даже если во второй нет данных.
SELECT *
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id;
🧠 Часто используется для аналитики: "у каких клиентов не было заказов?"
🔸 RIGHT JOIN
Что делает: наоборот — всё из правой таблицы и
NULL из левой, если нет совпадения.Когда использовать: аналогично
LEFT JOIN, но редко встречается, потому что просто меняем порядок таблиц.🔸 FULL OUTER JOIN
Что делает: объединяет
LEFT и RIGHT — берёт всё из обеих таблиц.Когда использовать: когда важны все данные, даже без соответствий.
SELECT *
FROM table_a
FULL OUTER JOIN table_b ON table_a.id = table_b.id;
🧠 Подходит для reconciliation'а или сверки.
❗ Совет
Фильтры (
WHERE) после LEFT JOIN могут не дать ожидаемый результат.Используй
ON для условий соединения, WHERE — для фильтрации результата.Сохрани, чтобы не забыть. А ты какой JOIN используешь чаще всего?
📲 Мы в MAX
#db
👉 @database_info
