🟢 Введение
RIGHT JOIN (или RIGHT OUTER JOIN) — это способ объединения двух таблиц, при котором:
Возвращаются все строки из правой таблицы
Из левой — только совпадающие строки
Если совпадения нет — в столбцах левой таблицы будет NULL
Этот тип соединения используется, когда правая таблица является основной, а левая — дополнительной.
🔤 Написание
Базовый синтаксис:
Пример:
🔄 Где часто используется
Когда правая таблица должна быть основной
При поиске записей без связей (например, отделов без сотрудников)
В ситуациях, когда используется шаблон «все из правой + связанные из левой»
При генерации аналитических или отчётных данных
Иногда как альтернатива
LEFT JOIN, но в обратном порядке
🧪 10 Примеров использования RIGHT с пояснениями
1️⃣ RIGHT JOIN с отсутствующими сотрудниками
Выведет все отделы, даже если в них нет сотрудников.
2️⃣ Поиск отделов без сотрудников
Выводит только «пустые» отделы.
3️⃣ RIGHT JOIN с заказами и клиентами
Показывает всех клиентов, даже если заказов нет.
4️⃣ RIGHT JOIN с агрегацией
Считает сотрудников, включая ноль, если отдел пуст.
5️⃣ RIGHT JOIN во VIEW
Создание представления, в котором все отделы присутствуют.
6️⃣ RIGHT JOIN с фильтрацией по дате
Показывает отделы и сотрудников, нанятых после 2020 года — включая отделы без новых сотрудников.
7️⃣ RIGHT JOIN с фильтром по правой таблице
Показывает отделы в локации 1700 и всех, кто с ними связан.
8️⃣ RIGHT JOIN в подзапросе
Отбор по названию отдела после объединения.
9️⃣ RIGHT JOIN с NULL-проверкой
Выделяем отделы без сотрудников.
🔟 RIGHT JOIN как альтернатива LEFT JOIN
Та же логика, разные направления соединения.
🧩 Заключение
RIGHT JOIN — это полезный, хотя и менее популярный способ объединения таблиц.
Он позволяет сохранять все строки из правой таблицы, что особенно полезно при анализе «основных» объектов (отделов, категорий, клиентов) и выявлении «пустых» связей.
Если вы видите в отчёте пропуски или хотите отобразить все категории, даже если нет данных — RIGHT JOIN подойдёт идеально.
🔜 Следующая статья:
Оператор ON в Oracle SQL — как задать условие соединения при JOIN