Vracejí stejné výsledky, protože jsou sémanticky identické. Toto:
select *
from A, B
...je syntaxe ANSI-89. Bez klauzule WHERE, která spojuje tabulky dohromady, je výsledkem kartézský součin. Což je přesně to, co alternativa také poskytuje:
select *
from A
cross join B
...ale CROSS JOIN je syntaxe ANSI-92.
O výkonu
Není mezi nimi žádný výkonnostní rozdíl.
Proč používat ANSI-92?
Důvodem použití syntaxe ANSI-92 je podpora OUTER JOIN (IE:LEFT, FULL, RIGHT) – syntaxe ANSI-89 žádnou nemá, takže mnoho databází implementovalo svou vlastní (která se neportuje do žádné jiné databáze ). IE:Oracle (+)
, =*
serveru SQL Server