Sobes.tech
Назад к вопросам
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 для заказов.