Назад к вопросам
СБЕР Тех
Junior — Middle
67
Объясните отличие между INNER JOIN и OUTER JOIN в SQL и в каких ситуациях используется каждый из них
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
INNER JOIN возвращает только те строки, у которых есть совпадения в обеих таблицах по условию соединения.
OUTER JOIN возвращает все строки из одной таблицы и соответствующие строки из другой. Если совпадений нет, то в местах отсутствующих данных будут NULL.
Виды OUTER JOIN:
- LEFT OUTER JOIN — все строки из левой таблицы + совпадающие из правой.
- RIGHT OUTER JOIN — все строки из правой таблицы + совпадающие из левой.
- FULL OUTER JOIN — все строки из обеих таблиц, с NULL там, где нет совпадений.
Пример использования:
- INNER JOIN — когда нужны только связанные данные, например, заказы с существующими клиентами.
- LEFT OUTER JOIN — когда нужно получить все клиенты, включая тех, у кого нет заказов.
Пример SQL:
SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;
Этот запрос вернёт всех клиентов и их заказы, если они есть, иначе NULL для заказов.