CROSS JOIN

Базовый SQL
≈ 1 мин чтения

CROSS JOIN создаёт все возможные пары строк

CROSS JOIN не ищет совпадения по ключу. Он соединяет каждую строку первого набора с каждой строкой второго.

SELECT c.name, s.size
FROM colors AS c
CROSS JOIN sizes AS s;

Если в colors 3 строки, а в sizes 4, результат содержит 12 комбинаций.

Когда декартово произведение полезно

Такое соединение подходит, когда все комбинации действительно имеют смысл: например, нужно сформировать матрицу «каждый тариф × каждый регион» или набор вариантов «цвет × размер».

Размер результата растёт очень быстро. При 10 000 строк в одной таблице и 10 000 в другой CROSS JOIN потенциально создаёт 100 миллионов комбинаций. Используй его только тогда, когда декартово произведение действительно нужно.