Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Чем отличается INNER JOIN от LEFT JOIN и как изменится результат запроса при их замене?

Вопрос проверяет понимание разницы между типами JOIN в SQL и их влияния на результирующий набор данных.

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

INNER JOIN возвращает только строки, где есть совпадение в обеих таблицах. LEFT JOIN возвращает все строки из левой таблицы, а для правой подставляет NULL, если совпадения нет. При замене LEFT JOIN на INNER JOIN вы потеряете строки левой таблицы без совпадений.

Длинный ответ

Разница между INNER JOIN и LEFT JOIN

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

Пример на практике

Представьте таблицу users с пользователями и таблицу orders с заказами. Не у всех пользователей есть заказы.

-- INNER JOIN: только пользователи с заказами
SELECT users.name, orders.amount
FROM users
INNER JOIN orders ON users.id = orders.user_id;

-- LEFT JOIN: все пользователи, даже без заказов
SELECT users.name, orders.amount
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

При INNER JOIN вы увидите только тех, кто сделал хотя бы один заказ. При LEFT JOIN — всех пользователей, а у кого заказов нет, в колонке amount будет NULL.

Как изменится результат при замене

Если заменить LEFT JOIN на INNER JOIN, из результата исчезнут строки, где у левой таблицы нет совпадений в правой. Это может привести к потере данных, если вы ожидаете увидеть все записи из левой таблицы. Например, в отчёте по пользователям вы не увидите тех, кто ничего не купил.

Вывод

INNER JOIN подходит, когда нужны только полные совпадения, а LEFT JOIN — когда важно сохранить все строки из основной таблицы, даже без соответствующих данных в связанной. Выбор зависит от бизнес-логики запроса.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • SQL

Ключевые слова

#INNER JOIN

#LEFT JOIN

#SQL

#JOIN

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.