Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

union de varias tablas

Estas en el tema de union de varias tablas en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/11/2009, 09:50
 
Fecha de Ingreso: mayo-2005
Mensajes: 121
Antigüedad: 19 años
Puntos: 0
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?
  #2 (permalink)  
Antiguo 20/11/2009, 03:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
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
  1. SELECT *
  2. FROM A
  3.          CROSS JOIN B
  4.                    ON A.id_A = B.id_B
  5.          CROSS JOIN C
  6.                    ON A.id_A = C.id_C
  7.          CROSS JOIN D
  8.                    ON A.id_A = D.id_D
  9.          CROSS JOIN E
  10.                    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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.