CROSS JOIN CROSS JOIN - это перекрестное соединение двух таблиц. Что значит перекрестное? А значит, что при соединении двух таблиц, они образуют таблицу из всех возможных сочетаний строк. По сути происходит простое перемножение строк таблиц. Если в таблице Т1 есть 3 строки и в таблице Т2 тоже 3 строки, то выводом данное соединения будет 9 строк. Точно также, если соотношение строк будет например 4 и 5, то общее число строк будет 20. Все просто. Несколько примеров: create table t1 (id int); create table t2 (id int); insert into t1 (id) values (1), (2), (3); insert into t2 (id) values (1), (2), (3); select * from t1 cross join t2; id | id ----+---- 1 | 1 1 | 2 1 | 3 2 | 1 2 | 2 2 | 3 3 | 1 3 | 2 3 | 3 (9 rows) -- вставим еще 2 строк, теперь соотношение строк 3 и 5, значит в результате соединение будет 15 строк insert into t2 (id) values (4), (5); select * from t1 cross join t2; id | id ----+---- 1 | 1 1 | 2 1 | 3 1 | 4 1 | 5 2 | 1 2 | 2 2 | 3 2 | 4 2 | 5 3 | 1 3 | 2 3 | 3 3 | 4 3 | 5 (15 rows)
2 прочтения · 8 месяцев назад