Ze retourneren dezelfde resultaten omdat ze semantisch identiek zijn. Dit:
select *
from A, B
...is (huiverend) ANSI-89-syntaxis. Zonder een WHERE-clausule om de tabellen aan elkaar te koppelen, is het resultaat een cartesiaans product. En dat is precies wat alternatief ook biedt:
select *
from A
cross join B
...maar de CROSS JOIN is de ANSI-92-syntaxis.
Over prestaties
Er is geen prestatieverschil tussen hen.
Waarom ANSI-92 gebruiken?
De reden om de ANSI-92-syntaxis te gebruiken is voor OUTER JOIN-ondersteuning (IE:LEFT, FULL, RIGHT) -- ANSI-89-syntaxis heeft er geen, dus veel databases hebben hun eigen geïmplementeerd (die niet naar andere databases wordt geporteerd) ). IE:Oracle's (+)
, SQL Server =*