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 originalSELECT *
FROM 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
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