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

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

Ответ

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

Пример:

SELECT users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

Этот запрос вернёт всех пользователей из таблицы users. Для пользователей, у которых есть заказы, будут указаны суммы (amount). Для пользователей без заказов в столбце amount будет NULL.

Ключевые особенности и отличия:

  • Гарантирует возврат всех строк из левой таблицы.
  • Используется, когда необходимо сохранить "основные" данные, даже если связанные данные отсутствуют (например, список всех клиентов, включая тех, кто ещё не сделал заказ).
  • В отличие от INNER JOIN, который возвращает только строки с совпадениями в обеих таблицах, LEFT JOIN включает все строки левой таблицы.
  • Порядок таблиц в запросе важен: таблица слева от LEFT JOIN является основной.