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 =*