De returnerar samma resultat eftersom de är semantiskt identiska. Detta:
select *
from A, B
...är (wince) ANSI-89-syntax. Utan en WHERE-klausul för att länka samman tabellerna blir resultatet en kartesisk produkt. Vilket är precis vad alternativet också ger:
select *
from A
cross join B
...men CROSS JOIN är ANSI-92-syntaxen.
Om prestanda
Det är ingen prestandaskillnad mellan dem.
Varför använda ANSI-92?
Anledningen till att använda ANSI-92-syntax är för OUTER JOIN-stöd (dvs. VÄNSTER, HELT, HÖGER)--ANSI-89-syntax har ingen, så många databaser implementerade sina egna (som inte portar till några andra databaser ). IE:Oracles (+)
, SQL Servers =*