sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar mysql JOIN sin la condición ON?

MySQL documentación cubre este tema.

Aquí hay una sinopsis. Al usar join o inner join , el on la condición es opcional. Esto es diferente del estándar ANSI y diferente de casi cualquier otra base de datos. El efecto es una cross join . Del mismo modo, puede usar un on cláusula con cross join , que también difiere del SQL estándar.

Una combinación cruzada crea un producto cartesiano, es decir, todas las combinaciones posibles de 1 fila de la primera tabla y 1 fila de la segunda. La combinación cruzada para una tabla con tres filas ('a', 'b' y 'c') y una tabla con cuatro filas (por ejemplo, 1, 2, 3, 4) tendría 12 filas.

En la práctica, si desea realizar una combinación cruzada, utilice cross join :

from A cross join B

es mucho mejor que:

from A, B

y:

from A join B -- with no on clause

El on se requiere una cláusula para una combinación externa derecha o izquierda, por lo que la discusión no es relevante para ellos.

Si necesita comprender los diferentes tipos de uniones, entonces debe estudiar un poco las bases de datos relacionales. Stackoverflow no es un lugar apropiado para ese nivel de discusión.