CROSS JOIN
- перекрестное (или декартово) произведение. Каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц.
Попробуем декартово произведение на таблицах:
SELECT *
FROM table1
value |
---|
1 |
2 |
SELECT *
FROM table2
value |
---|
1 |
2 |
3 |
Получим декартово произведение таблиц table1
и table2
:
SELECT t1.value as value_1,
t2.value as value_2
FROM table1 t1
CROSS JOIN
table2 t2
ORDER BY t1.value, t2.value
value_1 | value_2 |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
2 | 1 |
2 | 2 |
2 | 3 |
Аналогичного результата можно достичь просто перечислив таблицы в предложении FROM
через запятую:
SELECT t1.value as value_1,
t2.value as value_2
FROM table1 t1,
table2 t2
ORDER BY t1.value, t2.value