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

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

Ответ

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

Синтаксис:

SELECT columns
FROM table1
LEFT JOIN table2 ON table1.key = table2.key;

Пример: Предположим, есть таблица Employees и таблица Departments.

-- Найти всех сотрудников и их отделы, включая тех, у кого отдел не назначен
SELECT e.name, d.department_name
FROM Employees e
LEFT JOIN Departments d ON e.department_id = d.id;

Результат: В выборке будут все сотрудники. Если у сотрудника нет отдела (department_id не найден в Departments), то в колонке department_name будет NULL. Это отличает LEFT JOIN от INNER JOIN, который вернул бы только сотрудников с назначенным отделом.