Можно ли использовать LEFT JOIN как RIGHT JOIN в SQL?

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

Ответ

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

Пример эквивалентности:

-- LEFT JOIN: все строки из таблицы A, совпадения из B
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- Эквивалентный RIGHT JOIN (таблицы поменяны местами)
SELECT * FROM B RIGHT JOIN A ON B.a_id = A.id;

Почему это работает: Оба оператора возвращают все записи из одной таблицы ("главной") и совпадающие записи из другой. LEFT JOIN делает главной первую таблицу, RIGHT JOIN — вторую. Поменяв таблицы местами, вы меняете, какая из них является главной.

Рекомендация: На практике LEFT JOIN используется значительно чаще, так как запросы обычно строятся от основной сущности к зависимым. Использование RIGHT JOIN может ухудшить читаемость.