Конструкция CROSS JOIN
в SQL — это один из видов JOIN
, который создаёт декартово произведение двух таблиц: каждая строка из первой таблицы соединяется со всеми строками второй.
Если:
- Таблица A содержит
m
строк, - Таблица B содержит
n
строк,
то результат CROSS JOIN
будет содержать m × n
строк.
Синтаксис запроса:
1 |
SELECT *<br>FROM table_a<br>CROSS JOIN table_b; |
или
1 2 |
SELECT * FROM table_a, table_b; |
Пример
Есть две таблицы цветов (colors) и размеров (sizes)
Таблица colors
:
id | name |
---|---|
1 | red |
2 | blue |
Таблица sizes
:
id | label |
---|---|
1 | small |
2 | large |
Запрос c CROSS JOIN:
1 2 3 |
SELECT c.name, s.label FROM colors c CROSS JOIN sizes s; |
Результат:
name | label |
---|---|
red | small |
red | large |
blue | small |
blue | large |