Sobes.tech
Назад к вопросам
Middle
9

Какое количество строк вернет CROSS JOIN для таблиц с 100 и 10 записями?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

CROSS JOIN возвращает декартово произведение таблиц: каждая строка первой таблицы соединяется с каждой строкой второй. Для таблиц на 100 и 10 строк результат будет 1000 строк. Это базовое свойство важно понимать, чтобы не получить неожиданный взрыв объема данных.

Определение:

CROSS JOIN — это тип соединения в SQL, который не использует условие сопоставления строк. Вместо этого он формирует все возможные комбинации строк из обеих таблиц. Если в первой таблице N строк, а во второй M, результат будет содержать N × M строк.

Пример использования:

Допустим, есть таблица с 100 товарами и таблица с 10 складами. CROSS JOIN можно использовать, если нужно получить все возможные пары «товар–склад».

SELECT *
FROM products
CROSS JOIN warehouses;

Если products содержит 100 строк, а warehouses — 10 строк, итоговый результат будет содержать 100 * 10 = 1000 строк.

Пояснение кода:

Код показывает соединение без ON-условия, поэтому:

  1. Берётся каждая строка из products.
  2. Для неё добавляются все 10 строк из warehouses.
  3. Это повторяется для всех 100 строк первой таблицы.
  4. В итоге получается 1000 строк.

Ключевые моменты:

  • CROSS JOIN = декартово произведение таблиц.
  • Количество строк в результате = произведение размеров таблиц.
  • Для 100 и 10 строк результат будет 1000.
  • Использовать нужно осторожно, потому что объём данных растёт очень быстро.
  • Часто применяется для генерации всех комбинаций значений.