Сколько записей возвращает CROSS JOIN?

«Сколько записей возвращает CROSS JOIN?» — вопрос из категории SQL и базы данных, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

CROSS JOIN возвращает декартово произведение строк из объединяемых таблиц. Каждая строка первой таблицы соединяется с каждой строкой второй.

Формула количества записей: Количество записей = (Количество строк в таблице A) × (Количество строк в таблице B)

Пример:

-- Таблица Employees: 3 строки
-- Таблица Departments: 2 строки
SELECT *
FROM Employees
CROSS JOIN Departments;
-- Результат: 6 записей (3 × 2)

Важные аспекты:

  • Это самый ресурсоёмкий тип соединения, так как он генерирует максимально возможное количество комбинаций.
  • Может быть полезен для генерации всевозможных пар или комбинаций (например, все варианты "продукт-регион").
  • На больших таблицах может привести к астрономическому размеру результирующего набора данных, поэтому используется с осторожностью.