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

Hvad er forskellen mellem at bruge en krydssammenføjning og at sætte et komma mellem de to tabeller?

De returnerer de samme resultater, fordi de er semantisk identiske. Dette:

select * 
  from A, B

...er (rykker) ANSI-89-syntaks. Uden en WHERE-klausul til at forbinde tabellerne sammen, er resultatet et kartesisk produkt. Hvilket er præcis, hvad alternativet også giver:

    select * 
      from A 
cross join B

...men CROSS JOIN er ANSI-92-syntaks.

Om ydeevne

Der er ingen præstationsforskel mellem dem.

Hvorfor bruge ANSI-92?

Grunden til at bruge ANSI-92-syntaks er for OUTER JOIN-understøttelse (dvs.:VENSTRE, FULD, HØJRE)--ANSI-89-syntaks har ikke nogen, så mange databaser implementerede deres egne (som ikke porterer til andre databaser ). IE:Oracles (+) , SQL Servers =*



  1. MySQL og GROUP_CONCAT() maksimal længde

  2. Sådan indlæses JDBC-konfiguration fra Egenskabsfil Eksempel

  3. Opdeling af kommaseparerede værdier i kolonner til flere rækker i SQL Server

  4. Sådan omdøbes en tabel i Microsoft Access