В чём разница между LEFT JOIN и RIGHT JOIN в SQL?

Чем отличаются LEFT JOIN и RIGHT JOIN Оба оператора объединяют данные из таблиц SQL LEFT JOIN оставляет в результате все строки левой таблицы К ним добавляются совпавшие строки из правой таблицы При отсутствии…

Короткий ответ

Что ответить на собеседовании

Чем отличаются LEFT JOIN и RIGHT JOIN Оба оператора объединяют данные из таблиц SQL LEFT JOIN оставляет в результате все строки левой таблицы К ним добавляются совпавшие строки из правой таблицы При отсутствии соответствия значения столбцов правой таблицы становятся NULL RIGHT JOIN работает зеркально и сохраняет все строки правой таблицы Для них присоединяются совпадающие записи из левой таблицы Конкретный оператор выбирают в зависимости от требований к результату выборки По сути, различие определяется тем, какая таблица считается "главной" и должна сохранить все свои записи

Подробный разбор

Ответ с пояснениями

Чем отличаются LEFT JOIN и RIGHT JOIN

  • Оба оператора объединяют данные из таблиц SQL
  • LEFT JOIN оставляет в результате все строки левой таблицы
  • К ним добавляются совпавшие строки из правой таблицы
  • При отсутствии соответствия значения столбцов правой таблицы становятся NULL
  • RIGHT JOIN работает зеркально и сохраняет все строки правой таблицы
  • Для них присоединяются совпадающие записи из левой таблицы
  • Конкретный оператор выбирают в зависимости от требований к результату выборки
  • По сути, различие определяется тем, какая таблица считается "главной" и должна сохранить все свои записи

Итог: используйте тот оператор, который сохраняет полный набор строк нужной таблицы при объединении.

Развёрнутый ответ

Краткий ответ

LEFT JOIN и RIGHT JOIN относятся к внешним соединениям (outer joins) в SQL. Они объединяют строки двух таблиц, сохраняя записи одной из них целиком. При использовании LEFT JOIN в результат попадают все строки левой таблицы и только найденные соответствия из правой, тогда как RIGHT JOIN сохраняет все строки правой таблицы и добавляет совпадения из левой.

Основные особенности

  • При выполнении LEFT JOIN именно левая таблица является основной: все её записи попадут в результат, даже когда соответствующей строки в правой таблице нет. В такой ситуации столбцы правой таблицы получают значение NULL.
  • Для RIGHT JOIN действует обратное правило: главной считается правая таблица, поэтому все её строки сохраняются в результирующем наборе независимо от наличия соответствий слева.
  • С точки зрения результата RIGHT JOIN можно переписать как LEFT JOIN, поменяв таблицы местами. Однако в крупных и сложных запросах чаще выбирают LEFT JOIN — его обычно проще читать, а поведение легче заранее предсказать.

Пример применения

Предположим, требуется вывести всех пользователей вместе с их заказами, в том числе тех, у кого заказов пока нет. В этом случае таблицу пользователей размещают слева и используют LEFT JOIN. Если же необходимо показать каждый заказ и связанного с ним пользователя, включая заказы без пользователя (что встречается редко), можно применить RIGHT JOIN. На практике LEFT JOIN используют как основной вариант, а RIGHT JOIN — значительно реже, поскольку выбор чаще связан со стилем и удобством чтения SQL-запроса.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку