tgoop.com/big_data_systems_analysis/60
Last Update:
Множественные комбинации: перекрёстное соединение в SQL
Мы ещё не затрагивали тему соединений, которая является очень важной и обширной. И начну я, пожалуй, с одного из наиболее редких соединений. Это CROSS JOIN. Несмотря на его не частое использование, важно понимать как он работает.
По своей сути cross join — это декартово произведение. Каждая строка таблицы A объединяется с каждой строкой таблицы B. Число строк набора результатов будет равно произведению количества строк таблиц, которые будут объединены. Это отличный инструмент для создания всевозможных комбинаций.
Синтаксис: SELECT id_a, id_b
FROM table_a
CROSS JOIN table_b;
Аналогично сработает:SELECT id_a, id_b
FROM table_a, table_b
Давайте рассмотрим как будет выглядеть результат перекрёстного объединения двух таблиц:
table_a1
3
NULL
table_b1
2
NULL
Результат:1 1
1 2
1 NULL
3 1
3 2
3 NULL
NULL 1
NULL 2
NULL NULL
Обратите внимание на то, как произошло объединение по NULL — это полноценное значение поля и забывать о нём не нужно.
При использовании cross join на больших таблицах не забывайте, что это дорогостоящая операция, возвращающая огромные наборы данных (ведь мы умножаем одну таблицу на другую).
#sql #join
BY В мире больших данных
Share with your friend now:
tgoop.com/big_data_systems_analysis/60