CROSS JOIN - це тип JOIN, який повертає всі можливі комбінації рядків з двох таблиць. Тобто кожен рядок з першої таблиці буде поєднаний з кожним рядком з другої таблиці. Через це кількість рядків у результаті дорівнює: кількість рядків першої таблиці × кількість рядків другої таблиці.
Розберемо приклад
Ми маємо дві таблиці: users і plans. Наша задача полягає в тому, щоб отримати всі можливі пари користувачів і тарифів. Для цього ми будемо використовувати CROSS JOIN.
Запит буде мати наступний вигляд. Давайте розберемо його детальніше:
В результаті виконання запиту, ми отримаємо такий результат: Alice поєдналася з усіма тарифами і так само Bob поєднався з усіма можливими тарифами.
Важливо пам’ятати
CROSS JOIN може дуже швидко створити велику кількість рядків. Наприклад, якщо в першій таблиці 100 рядків, а в другій 200, то результат буде містити вже 20 000 рядків. Тому його потрібно використовувати обережно.