CROSS JOIN (картезианское произведение) соединяет каждую строку одной таблицы с каждой строкой другой таблицы.
Общее количество строк в результате будет равно произведению числа строк в обеих таблицах.
Синтаксис:
SELECT * FROM table1 CROSS JOIN table2;
Пример
Таблица products
(Товары):
product_id | product_name
-------------------------
1 | Laptop
2 | Phone
Таблица stores
(Магазины):
store_id | store_name
------------------------
1 | Store A
2 | Store B
Запрос:
SELECT products.product_name, stores.store_name
FROM products
CROSS JOIN stores;
Результат:
product_name | store_name
--------------------------
Laptop | Store A
Laptop | Store B
Phone | Store A
Phone | Store B
Когда использовать CROSS JOIN
- Для анализа всех возможных комбинаций между двумя наборами данных.
- Для генерации тестовых данных.
- В ситуациях, где требуется получить полное картезианское произведение.