Как преобразовать LEFT JOIN в RIGHT JOIN в SQL?

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

Ответ

Да, можно. LEFT JOIN и RIGHT JOIN логически эквивалентны, если поменять таблицы местами. Оба возвращают все строки из одной таблицы и совпадающие строки из другой.

Правило преобразования:

A LEFT JOIN BB RIGHT JOIN A

Пример:

-- Исходный запрос с LEFT JOIN
SELECT *
FROM Employees e
LEFT JOIN Departments d ON e.department_id = d.id;
-- Возвращает всех сотрудников, даже без отдела.

-- Эквивалентный запрос с RIGHT JOIN
SELECT *
FROM Departments d
RIGHT JOIN Employees e ON e.department_id = d.id;
-- Тот же результат: все сотрудники (Employees) — это теперь "правая" таблица.

Практическая рекомендация:

  • Для удобства чтения и поддержки кода используйте LEFT JOIN как более распространённый и интуитивно понятный вариант.
  • RIGHT JOIN встречается реже и может усложнить понимание запроса, особенно при множественных соединениях.