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

UNION de dos tablas sin mezclar columnas

Estas en el tema de UNION de dos tablas sin mezclar columnas en el foro de Mysql en Foros del Web. Hola, le llevo tiempo dando vueltas, pero no sé como manejar UNION para ello o si es que será con otro operador, para obtener en ...
  #1 (permalink)  
Antiguo 21/09/2006, 17:49
Avatar de dayer  
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 20 años, 2 meses
Puntos: 0
UNION de dos tablas sin mezclar columnas

Hola, le llevo tiempo dando vueltas, pero no sé como manejar UNION para ello o si es que será con otro operador, para obtener en el resultado del query las columnas sin mezclarlas. Expongo mi caso con detalle:

tabla1: id_tabla1, datos

tabla2: id_tabla2, datos

entonces el problema es que yo necesito obtener 4 columnas y un número de filas igual al máximo de filas de entre las 2 tablas.

Yo empleo esta sentencia:
"SELECT * FROM tabla1 UNION ALL SELECT * FROM tabla2"

y claro me devuelve, por ejemplo:

1 real
2 imperial
3 harpía
4 perdicera
5 calzada
6 culebrera
1 Europa
2 Asia
3 África
4 América

y yo estas dos tablas en realidad las empleo para otra más grande, y lo que intento es en una sola consulta extraer los datos de las dos tablas para dos menús desplegables que creo, uno con los datos de la tabla1 y el otro con los datos de la tabla2, (para lo que actualmente hago dos consultas) y estoy convencido de que tiene que haber forma de obtener estas dos tablas en una sola consulta de la manera que yo las necesito

Un saludo y gracias, nunca me dejais con dudas
__________________
No Ðejes Para Mañana Monte Que Puedas Escalar Hoy
Cartagena
El Historias
  #2 (permalink)  
Antiguo 22/09/2006, 21:34
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
select * from tabla1,tabla2
  #3 (permalink)  
Antiguo 23/09/2006, 10:06
Avatar de dayer  
Fecha de Ingreso: febrero-2004
Mensajes: 142
Antigüedad: 20 años, 2 meses
Puntos: 0
Hola! Muchas gracias por tu respuesta emiliodeg, así me devuelve:
Código:
mysql> select * from pajaros, continentes;
+----------+------------+-----------+---------+
| pajar_id | nombre     | contin_id | contin  |
+----------+------------+-----------+---------+
|        1 | real       |         1 | Europa  |
|        1 | real       |         2 | Asia    |
|        1 | real       |         3 | África  |
|        1 | real       |         4 | América |
|        2 | imperial   |         1 | Europa  |
|        2 | imperial   |         2 | Asia    |
|        2 | imperial   |         3 | África  |
|        2 | imperial   |         4 | América |
|        3 | harpia     |         1 | Europa  |
|        3 | harpia     |         2 | Asia    |
|        3 | harpia     |         3 | África  |
|        3 | harpia     |         4 | América |
|        4 | perdicera  |         1 | Europa  |
|        4 | perdicera  |         2 | Asia    |
|        4 | perdicera  |         3 | África  |
|        4 | perdicera  |         4 | América |
|        5 | calzada    |         1 | Europa  |
|        5 | calzada    |         2 | Asia    |
|        5 | calzada    |         3 | África  |
|        5 | calzada    |         4 | América |
|        6 | culebrera  |         1 | Europa  |
|        6 | culebrera  |         2 | Asia    |
|        6 | culebrera  |         3 | África  |
|        6 | culebrera  |         4 | América |
+----------+------------+-----------+---------+
no sé, es muy posible que entonces lo que yo quiero conseguir no se pueda, que sería algo de la forma:
Código:
mysql> select * from pajaros, continentes;
+----------+------------+-----------+---------+
| pajar_id | nombre     | contin_id | contin  |
+----------+------------+-----------+---------+
|        1 | real       |         1 | Europa  |
|        2 | imperial   |         2 | Asia    |
|        3 | harpia     |         3 | África  |
|        4 | perdicera  |         4 | América |
|        5 | calzada    |           |         |
|        6 | culebrera  |           |         |
+----------+------------+-----------+---------+
y que esas dos filas vacías de contin_id y contin estuvieses con valores NULL o vacías, y así poder emplearlas para dos menús desplegables, recorriendo la tabla entera una vez e imprimiendo 6 filas para "nombre" y 4 para "contin"
__________________
No Ðejes Para Mañana Monte Que Puedas Escalar Hoy
Cartagena
El Historias
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 18:47.