esto es posible?
select * A
CROSS JOIN B ON A.id_A = B.id_B
CROSS JOIN C ON A.id_A = C.id_C
CROSS JOIN D ON A.id_A = D.id_D
CROSS JOIN E ON A.id_A = E.id_E
esta consulta es correcta?
el orden de union entre ellas?
| |||
union de varias tablas esto es posible? select * A CROSS JOIN B ON A.id_A = B.id_B CROSS JOIN C ON A.id_A = C.id_C CROSS JOIN D ON A.id_A = D.id_D CROSS JOIN E ON A.id_A = E.id_E esta consulta es correcta? el orden de union entre ellas? |
| |||
union de varias tablas Manual Mysql Cita: In MySQL, CROSS JOIN is a syntactic equivalent to INNER JOIN (they can replace each other). In standard SQL, they are not equivalent. INNER JOIN is used with an ON clause, CROSS JOIN is used otherwise.
Código sql:
Ver original como puedes leer en el manual CROSS es equivalente a INNER en Mysql Ahora bien esa query no hace lo que se suele llamar por union de tablas. Esto de da una "union" horizontal por llamarlo de alguna forma. A.id_A::::A.campo1::::A.campo2:::::B.id_B::::B.cam po1::::B.campo2... etc es decir los CAMPOS de la taba A seguidos de los de la B etc los campos de cada tabla puedn ser distintos Lo que normalmente se llama UNION de tabla se haria como sigue Select id_A as id, campo1, campo2 From A UNION ALL Select id_B as id, campo1, campo2 From B UNION ALL Select id_C as id, campo1, campo2 From C ...etc esto te daria lo siguiente A.id_A1::::A.campo11::::A.campo21 A.id_A2::::A.campo12::::A.campo22 B.id_B1::::B.campo11::::B.campo21 B.id_B2::::B.campo12::::B.campo22 ... etc es decir los REGISTROS de la tabla A seguidos de los de la B etc en este caso los campos de las tablas deben coincidir. Quim |