Devuelven los mismos resultados porque son semánticamente idénticos. esto:
select *
from A, B
... es (mueca) sintaxis ANSI-89. Sin una cláusula WHERE para unir las tablas, el resultado es un producto cartesiano. Que es exactamente lo que ofrece la alternativa también:
select *
from A
cross join B
...pero CROSS JOIN es sintaxis ANSI-92.
Acerca del rendimiento
No hay diferencia de rendimiento entre ellos.
¿Por qué usar ANSI-92?
La razón para usar la sintaxis ANSI-92 es para la compatibilidad con OUTER JOIN (ES decir:IZQUIERDA, COMPLETA, DERECHA) -- La sintaxis ANSI-89 no tiene ninguna, por lo que muchas bases de datos implementaron la suya propia (que no se adapta a ninguna otra base de datos). ). IE:(+)
de Oracle , =*
de SQL Server