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

¿Es posible escribir una consulta de unión sin instrucción? y cómo difieren estas uniones en los trabajos.ONLEFT JOIN, RIGHT JOIN

Respuestas:3 Respuestas 3
Tiempo:hace 9 años, 4 meses
Última modificación:hace 8 meses

Solución

La documentación de MySQL cubre este tema.

Aquí hay una sinopsis. Cuando se usa o , la condición es opcional. Esto es diferente del estándar ANSI y diferente de casi cualquier otra base de datos. El efecto es un . Del mismo modo, puede utilizar una cláusula con , que también difiere de SQL estándar.joininner joinoncross joinoncross join

Una unión cruzada crea un producto cartesiano, es decir, cada combinación posible de 1 fila de la primera tabla y 1 fila de la segunda. La unión cruzada para una tabla con tres filas (‘a’, ‘b’ y ‘c’) y una tabla con cuatro filas (digamos 1, 2, 3, 4) tendría 12 filas.

En la práctica, si desea hacer una unión cruzada, use :cross join

from A cross join B

es mucho mejor que:

from A, B

y:

from A join B -- with no on clause

La cláusula es necesaria para una unión exterior derecha o izquierda, por lo que la discusión no es relevante para ellos.on

Otras respuestas

Hay varias formas de hacer unión cruzada o producto cartesiano:

SELECT column_names FROM table1 CROSS JOIN table2;

SELECT column_names FROM table1, table2;

SELECT column_names FROM table1 JOIN table2;

Descuidar la condición en el tercer caso es lo que resulta en una unión cruzada.on

Deja un comentario