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