Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Alternativa per cartesiano e Cross Join

A un livello di definizione rigoroso, non è possibile. Come mai? Perché la definizione di un prodotto cartesiano è esattamente ciò che descrivi (il termine "unione cartesiana" non è usato spesso ma è sinonimo di "prodotto cartesiano"). Pertanto, qualsiasi metodo utilizzato implementa questa funzionalità. Normalmente questa funzionalità viene implementata utilizzando CROSS JOIN (e lo ammetto con riluttanza, a volte usando , ).

Potresti dire "aggiungi 1 a un numero senza fare + 1 ". Arriva qualcun altro e dice "usa + 2 - 1 ". Bene, questo è aggiungerne uno, ma usando solo due operazioni anziché una.

Se vuoi un prodotto cartesiano ma non vuoi utilizzare il CROSS JOIN operatore, il metodo più tipico utilizza ON 1=1 :

select t1.*, t2.*
from t1 join
     t2
     on 1 = 1;