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

Alternativ til Cartesian og Cross Join

Med et strengt definitionsniveau er det ikke muligt. Hvorfor? Fordi definitionen af et kartesisk produkt er præcis, hvad du beskriver (udtrykket "Cartesian join" bruges ikke ofte, men er et synonym for "Cartesian produkt"). Derfor implementerer enhver metode, du bruger, denne funktionalitet. Normalt implementeres denne funktionalitet ved hjælp af CROSS JOIN (og jeg indrømmer modvilligt, nogle gange ved at bruge , ).

Du kan sige "tilføj 1 til et tal uden at gøre + 1 ". En anden kommer og siger "brug + 2 - 1 ". Nå, det er at tilføje én, men bare bruge to operationer i stedet for én.

Hvis du ønsker et kartesisk produkt, men du ikke ønsker at bruge CROSS JOIN operatør, den mest typiske metode bruger ON 1=1 :

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


  1. SQL grupper efter dato (time)

  2. Hvordan vælger GROUP BY DESC sin ordre?

  3. Hvordan sammenligner man to forespørgselsresultater for lighed i MySQL?

  4. hvordan man bruger streng venstre funktion i hql