Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Alternativa para junção cartesiana e cruzada


Por um nível de definição estrito, não é possível. Por quê? Porque a definição de um produto cartesiano é exatamente o que você descreve (o termo "junção cartesiana" não é frequentemente usado, mas é sinônimo de "produto cartesiano"). Portanto, qualquer método que você usa está implementando essa funcionalidade. Normalmente esta funcionalidade é implementada usando CROSS JOIN (e admito com relutância, às vezes usando , ).

Você pode dizer "adicione 1 a um número sem fazer + 1 ". Alguém aparece e diz "use + 2 - 1 ". Bem, isso é adicionar um, mas apenas usando duas operações em vez de uma.

Se você quer um produto cartesiano mas não quer usar o CROSS JOIN operador, o método mais comum usa ON 1=1 :
select t1.*, t2.*
from t1 join
     t2
     on 1 = 1;