Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Alternative für Cartesian und Cross Join

Bei einer strengen Definitionsebene ist dies nicht möglich. Wieso den? Weil die Definition eines kartesischen Produkts ist genau das, was Sie beschreiben (der Begriff "kartesische Verbindung" wird nicht oft verwendet, ist aber ein Synonym für "kartesisches Produkt"). Daher implementiert jede Methode, die Sie verwenden, diese Funktionalität. Normalerweise wird diese Funktionalität mit CROSS JOIN implementiert (und ich gebe widerwillig zu, manchmal mit , ).

Du könntest sagen „Addiere 1 zu einer Zahl, ohne + 1 zu machen ". Jemand anderes kommt daher und sagt "benutze + 2 - 1 ". Nun, das heißt, eine hinzufügen, aber nur zwei Operationen statt einer verwenden.

Wenn Sie ein kartesisches Produkt wünschen, aber den CROSS JOIN nicht verwenden möchten Operator verwendet die typischste Methode ON 1=1 :

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