Back to questions
Junior — Middle
96
Объясните различия между внутренним соединением и внешним соединением в SQL.
Answer from AI
sobes.tech AI
В SQL внутреннее (INNER JOIN) и внешнее соединения (OUTER JOIN) используются для объединения строк из двух таблиц, но отличаются по способу выбора строк:
-
Внутреннее соединение (INNER JOIN) возвращает только те строки, у которых есть совпадения в обеих таблицах по условию соединения.
-
Внешнее соединение (OUTER JOIN) возвращает все строки из одной таблицы и соответствующие строки из другой. Если соответствия нет, то в местах отсутствующих данных будут NULL.
Внешние соединения бывают трёх типов:
- LEFT OUTER JOIN — все строки из левой таблицы + совпадающие из правой
- RIGHT OUTER JOIN — все строки из правой таблицы + совпадающие из левой
- FULL OUTER JOIN — все строки из обеих таблиц, с NULL там, где нет совпадений
Пример:
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Вернёт только пользователей с заказами
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Вернёт всех пользователей, даже если у них нет заказов (orders будут NULL)