Что такое INNER JOIN в SQL?

«Что такое INNER JOIN в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

INNER JOIN — это операция реляционной алгебры и ключевое слово SQL, которое возвращает только те строки из двух или более таблиц, для которых выполняется условие соединения (ON). Результатом является пересечение множеств строк на основе общего поля.

Синтаксис и пример:

SELECT 
    orders.order_id, 
    customers.customer_name,
    orders.order_date
FROM orders
INNER JOIN customers 
    ON orders.customer_id = customers.customer_id;

Что происходит: В результирующую таблицу попадут только заказы (orders), для которых существует соответствующий клиент (customers) с совпадающим customer_id. Заказы без клиента и клиенты без заказов исключаются.

Визуализация (Теория множеств):

Таблица A      INNER JOIN      Таблица B
[ 1, 2, 3 ]   ------------>   [ 2, 3, 4 ]
                             /
                            /
        Результат: [ 2, 3 ]

Ключевые особенности:

  • Это самый распространенный тип JOIN.
  • Порядок таблиц в запросе не важен для результата (коммутативность).
  • Если имена соединяемых столбцов одинаковы, часто используют USING:
    INNER JOIN customers USING (customer_id);
  • Почему это важно: INNER JOIN обеспечивает целостность данных, возвращая только связанные записи, что критично для корректных отчетов и бизнес-логики.