INNER JOIN возвращает только совпавшие пары строк, а LEFT JOIN сохраняет все строки левой таблицы, подставляя NULL справа при отсутствии совпадения.
Чем INNER JOIN отличается от LEFT JOIN?
INNER JOIN возвращает только совпавшие пары строк, а LEFT JOIN сохраняет все строки левой таблицы, подставляя NULL справа при отсутствии совпадения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
INNER JOIN возвращает только совпавшие пары строк, а LEFT JOIN сохраняет все строки левой таблицы, подставляя NULL справа при отсутствии совпадения.
Например, users INNER JOIN orders покажет пользователей с заказами, а LEFT JOIN позволит увидеть и пользователей без заказов. Несколько заказов одного пользователя дадут несколько строк в обоих случаях. Фильтр по полю orders в WHERE может исключить NULL-строки и фактически изменить результат outer join; иногда условие нужно в ON. Выбор зависит от требуемого множества результатов, а не от того, какой JOIN кажется быстрее.