Sobes.tech
Back to questions
Junior — Middle
72

Объясните различия между операциями INNER JOIN и LEFT JOIN в SQL и их применение в запросах.

Companies where asked
ИнфоТехСервис
ООО УайтСнейк

Answer from AI

sobes.tech AI

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

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

Пример:

SELECT users.id, orders.id
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Вернет только пользователей с заказами.

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

Вернет всех пользователей, включая тех, у кого нет заказов (в этом случае orders.id будет NULL).

Применение:

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