Ответ
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приоритетен для правой таблицы.
Зачем использовать? Для анализа, когда нужно видеть все записи из справочной таблицы (например, все товары, даже те, которые ни разу не продавались), и связанные с ними данные из операционной таблицы.