Ответ
CROSS JOIN (декартово соединение) возвращает декартово произведение двух таблиц — каждая строка первой таблицы соединяется с каждой строкой второй. Это полезно для генерации всех возможных комбинаций, но требует осторожности из-за потенциально огромного размера результата.
Пример:
-- Генерация всех комбинаций цветов и размеров
SELECT *
FROM colors
CROSS JOIN sizes;
Если таблица colors содержит ['red', 'blue'], а sizes — ['S', 'M'], результат будет:
color | size
------|-----
red | S
red | M
blue | S
blue | M
Ключевые особенности:
- Не требует условия ON — в отличие от INNER/LEFT JOIN
- Размер результата = количество строк таблицы1 × количество строк таблицы2
- Производительность — может быть ресурсоемким для больших таблиц (1000×1000 = 1 млн строк)
- Синтаксические варианты:
-- Явный CROSS JOIN SELECT * FROM t1 CROSS JOIN t2;
-- Неявный через запятую (устаревший стиль) SELECT * FROM t1, t2;
**Практическое применение:** генерация тестовых данных, создание матриц комбинаций, кросс-таблицы для отчетов. Видео-ответы
▶
▶
▶
▶