Какое количество строк вернет CROSS JOIN для таблиц с 100 и 10 записями?
Answer from AI
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-условия, поэтому:
- Берётся каждая строка из
products. - Для неё добавляются все 10 строк из
warehouses. - Это повторяется для всех 100 строк первой таблицы.
- В итоге получается 1000 строк.
Ключевые моменты:
CROSS JOIN= декартово произведение таблиц.- Количество строк в результате = произведение размеров таблиц.
- Для 100 и 10 строк результат будет
1000. - Использовать нужно осторожно, потому что объём данных растёт очень быстро.
- Часто применяется для генерации всех комбинаций значений.