Соединения

Декартово произведение

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_1value_2
11
12
13
21
22
23

Аналогичного результата можно достичь просто перечислив таблицы в предложении FROM через запятую:

SELECT t1.value as value_1,
       t2.value as value_2
  FROM table1 t1,
       table2 t2
 ORDER BY t1.value, t2.value
    ПредыдущаяСледующая