CROSS JOIN очень похоже на INNER JOIN MYTable on 1 = 1
, в результате чего получается декартово произведение ваших входных наборов
По сути, для каждой записи слева онообъединения для каждой записи справа.
В случае исходной таблицы из 10 цифр первое перекрестное соединение приводит к 100 записям.
В случае второго перекрестного соединения кВ той же 10-значной исходной таблице вы снова получаете все 100 предыдущих записей для каждой записи в исходной таблице, в результате чего получается 1000 записей.
Ваша итоговая таблица будет выглядеть так, если вы используете оператор Selectбыло "Выбрать * ..." Порядок по ...
D1 D2 D3
1 2 3
1 2 4
1 2 5
Если вы возьмете эти значения в таблице выше и объедините их (затем добавите одно), вы получите последовательные числа.
"1" + "2" + "3" = 123 (+1 = 124)
"1" + "2" + "4" = 124 (+1 = 125)
"1" + "2" + "5" = 125 (+1 = 126)
Очевидно, автор не объединяет.Однако он выполняет математический эквивалент.
1 * 100 + 2 * 10 + 3 * 1 + 1 = 124
1 * 100 + 2 * 10 + 4 * 1 + 1 = 125
1 * 100 + 2 * 10 + 5 * 1 + 1 = 126
В конечном итоге автор изобрел странный способ представить список чисел от 1 до 1000.