¿Es posible escribir una consulta de unión sin instrucción? y cómo difieren estas uniones en los trabajos.ON
LEFT JOIN, RIGHT JOIN
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.join
inner join
on
cross join
on
cross 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