Ils renvoient les mêmes résultats car ils sont sémantiquement identiques. Ceci :
select *
from A, B
...est (wince) la syntaxe ANSI-89. Sans clause WHERE pour lier les tables entre elles, le résultat est un produit cartésien. C'est exactement ce que propose l'alternative :
select *
from A
cross join B
...mais le CROSS JOIN est la syntaxe ANSI-92.
À propos des performances
Il n'y a pas de différence de performances entre eux.
Pourquoi utiliser ANSI-92 ?
La raison d'utiliser la syntaxe ANSI-92 est pour le support OUTER JOIN (IE:LEFT, FULL, RIGHT)--la syntaxe ANSI-89 n'en a pas, donc beaucoup de bases de données ont implémenté leur propre (qui ne porte pas sur d'autres bases de données ). IE :(+)
d'Oracle , =*
de SQL Server