Добавить в корзинуПозвонить
Найти в Дзене

JOIN’ы в SQL: визуальная шпаргалка для легкого понимания

JOIN’ы в SQL: визуальная шпаргалка для легкого понимания. 🗺️ Разобраться в операторах JOIN — значит перестать бояться сложных запросов и начать говорить с базой данных на одном языке. Давайте визуализируем каждый тип соединения на простых примерах. Представьте две таблицы: Пользователи 👨‍💼 и Заказы 🛒. Наша цель — гибко объединять их данные. 1. INNER JOIN ⚡ Самый частый гость в запросах. Возвращает только те записи, где есть совпадение в обеих таблицах. Это пересечение множеств. SELECT * FROM Пользователи INNER JOIN Заказы ON Пользователи.id = Заказы.user_id; В результат попадут только пользователи, сделавшие хотя бы один заказ, и их заказы. Те, кто ничего не купил, исчезнут. 2. LEFT JOIN 👈 Вот где начинается магия! LEFT JOIN возвращает ВСЕ записи из левой таблицы (Пользователи) и соответствующие им записи из правой (Заказы). Если совпадения нет, правые поля заполняются NULL. SELECT * FROM Пользователи LEFT JOIN Заказы ON Пользователи.id = Заказы.user_id; Это идеально для поиск

JOIN’ы в SQL: визуальная шпаргалка для легкого понимания. 🗺️

Разобраться в операторах JOIN — значит перестать бояться сложных запросов и начать говорить с базой данных на одном языке. Давайте визуализируем каждый тип соединения на простых примерах.

Представьте две таблицы: Пользователи 👨‍💼 и Заказы 🛒. Наша цель — гибко объединять их данные.

1. INNER JOIN ⚡

Самый частый гость в запросах. Возвращает только те записи, где есть совпадение в обеих таблицах. Это пересечение множеств.

SELECT * FROM Пользователи INNER JOIN Заказы ON Пользователи.id = Заказы.user_id;

В результат попадут только пользователи, сделавшие хотя бы один заказ, и их заказы. Те, кто ничего не купил, исчезнут.

2. LEFT JOIN 👈

Вот где начинается магия! LEFT JOIN возвращает ВСЕ записи из левой таблицы (Пользователи) и соответствующие им записи из правой (Заказы). Если совпадения нет, правые поля заполняются NULL.

SELECT * FROM Пользователи LEFT JOIN Заказы ON Пользователи.id = Заказы.user_id;

Это идеально для поиска «аутсайдеров»: мы увидим всех пользователей, включая тех, кто еще ничего не заказал.

3. RIGHT JOIN 👉

Зеркальный близнец LEFT JOIN. Он возвращает все записи из правой таблицы и совпадающие — из левой. Не пользуется большой популярностью, так как его легко заменить LEFT JOIN’ом, поменяв таблицы местами.

4. FULL JOIN или FULL OUTER JOIN 🔄

Мощное и реже используемое соединение. Возвращает все записи из обеих таблиц, объединяя их. Если совпадение есть — строки соединяются. Если нет — недостающие поля заполняются NULL.

SELECT * FROM Пользователи FULL JOIN Заказы ON Пользователи.id = Заказы.user_id;

В итоге мы получим вообще всё: всех пользователей, все заказы и установим связи между ними, где это возможно.

5. CROSS JOIN ❌

Осторожно, бумеранг! Это декартово произведение: каждая строка левой таблицы соединяется с каждой строкой правой. Если в первой таблице 10 записей, а во второй — 20, результат будет насчитывать 200 строк. Полезно редко, но знать о нем стоит.

Как выбрать нужный JOIN?

- Нужны только совпадения? → INNER JOIN

- Хочу всех из таблицы A и их совпадения из B → LEFT JOIN

- Нужно вообще всё из обеих таблиц → FULL JOIN

Практика — ключ к mastery. Чтобы закрепить теорию на реальных кейсах и под руководством экспертов, смотрите программы на https://cdpo.itmo.ru/