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

Union Anidada.

Estas en el tema de Union Anidada. en el foro de Mysql en Foros del Web. Buenos dias, me gustaria saber si puedo hacer una union anidad mi ejemplo es este: ((select id, name from table1) UNION (select age, lastname from ...
  #1 (permalink)  
Antiguo 10/12/2013, 09:28
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Union Anidada.

Buenos dias, me gustaria saber si puedo hacer una union anidad mi ejemplo es este:

((select id, name from table1)
UNION
(select age, lastname from table2))
UNION
((select telephone, ocupation from table3)
UNION
(select fax, email from table4))

La verdad aun no se si esta clase de union se pueda hacer.
  #2 (permalink)  
Antiguo 10/12/2013, 09:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Union Anidada.

Poderse hacer, se puede, pero no es recomendable, porque estás mezclando caballos con manzanas, y sumándoles tazas de plástico.
La idea de UNION es obtener una única tabla, de segmentos de información cuyas columnas contienen los mismos conceptos. Por ende cada columna de cada subselect debe devovler el mismo tipo de datos, tanto en columna como en concepto representado.
Lo que quieres hacer es resolverte la vida para mostrar datos en forma de tabla en un formulario, sin tener que programar. En otras palabras, hacer un pastiche.
Tomate el tiempo y programa las cosas bien, y de ese modo evirtarás forzar a MySQL a hacer conversiones implícitas cuyo resultao y performance pueden ser muy nocivos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/12/2013, 10:24
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Union Anidada.

Creo que no me supe explicar bien, lo que tengo es lo siguiente: una union de 2 tablas de x bd y esa misma union pero en y bd, lo que necesito es poder unir esas 2 consultas.
  #4 (permalink)  
Antiguo 10/12/2013, 10:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Union Anidada.

TE explciaste, pero en cada una de las tres SELECT estás encolumnando datos que no tienen el mismo dominio. Y eso es incorrecto.
En la columna 1 estás pondiendo ID, EDAD, TELEFONO y FAX, mientras que en la columna 2 pones NOMBRE, APELLIDO, OCUPACION y EMAIL.
Ese tipo de encolumnado sólo tiene sentido para visualización en pantalla, y no para una query de SQL. En SQL cada columna dene representar el mismo tipo de dato.

¿Se entiende ahora?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/12/2013, 10:36
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Union Anidada.

Eso lo tengo claro, pero solo puse eso de ejemplo, pense que se entenderia pero noto que no fue asi.
  #6 (permalink)  
Antiguo 10/12/2013, 11:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Union Anidada.

estibenramirez,
creo que deberías explicarnos con datos reales lo que tienes (tablas, relaciones, etc.) y lo que quieres hacer con esos datos de manera concreta. Lo mismo estoy algo confundido, pero por los datos que das, quizás quieres presentar juntos datos de distintas tablas, pero no nos dices qué tipo de relación hay entre ellas. Tal vez si nos das más información podamos ayudarte mejor.

Etiquetas: select, union
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:26.