sql >> Databasteknik >  >> RDS >> Sqlserver

Alternativ för Cartesian och Cross Join

Med en strikt definitionsnivå är det inte möjligt. Varför? Eftersom definitionen av en kartesisk produkt är precis vad du beskriver (termen "kartesisk anslutning" används inte ofta men är en synonym för "kartesisk produkt"). Därför implementerar alla metoder du använder den här funktionen. Normalt implementeras denna funktion med CROSS JOIN (och jag erkänner motvilligt att jag ibland använder , ).

Du kan säga "lägg till 1 till ett nummer utan att göra + 1 ". Någon annan kommer och säger "använd + 2 - 1 ". Tja, det är att lägga till en, men bara att använda två operationer istället för en.

Om du vill ha en kartesisk produkt men du inte vill använda CROSS JOIN operatorn, använder den mest typiska metoden ON 1=1 :

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


  1. Proaktiva SQL Server Health Checks, Del 1:Diskutrymme

  2. TIME_TO_SEC() Exempel – MySQL

  3. MySQL LOAD DATA LOCAL INFILE exempel i python?

  4. PSQLEundantag:Servern begärde lösenordsbaserad autentisering, men inget lösenord angavs