Что такое RIGHT JOIN в SQL?

«Что такое RIGHT JOIN в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

RIGHT JOIN (или RIGHT OUTER JOIN) — это операция SQL, которая возвращает все записи из правой (второй) таблицы и соответствующие им записи из левой (первой) таблицы. Если соответствия нет, в колонках левой таблицы будут значения NULL.

Синтаксис и логика:

SELECT *
FROM Table_A
RIGHT JOIN Table_B
    ON Table_A.key = Table_B.key;

Результат: Все строки из Table_B + совпадающие строки из Table_A.

Практический пример: Допустим, есть таблицы departments и employees. Некоторые отделы могут не иметь сотрудников.

SELECT departments.name AS department_name,
       employees.name AS employee_name
FROM employees
RIGHT JOIN departments
    ON employees.department_id = departments.id
ORDER BY departments.name;

Результат будет включать:

  • Все отделы (departments) из правой таблицы.
  • Сотрудников (employees), которые в них работают.
  • Отделы без сотрудников — в колонке employee_name будет NULL.

Ключевое отличие от LEFT JOIN:

  • LEFT JOIN приоритетен для левой таблицы.
  • RIGHT JOIN приоритетен для правой таблицы.

Зачем использовать? Для анализа, когда нужно видеть все записи из справочной таблицы (например, все товары, даже те, которые ни разу не продавались), и связанные с ними данные из операционной таблицы.