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

JOIN a múltiples tablas similares.

Estas en el tema de JOIN a múltiples tablas similares. en el foro de Mysql en Foros del Web. ¡Buenos días! Ayer recibí buena ayuda por aquí y ahora la solicito otra vez. Ahora lo que no logro conseguir es lo siguiente. Tengo una ...
  #1 (permalink)  
Antiguo 13/11/2008, 08:35
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 8 meses
Puntos: 2
JOIN a múltiples tablas similares.

¡Buenos días!

Ayer recibí buena ayuda por aquí y ahora la solicito otra vez. Ahora lo que no logro conseguir es lo siguiente.

Tengo una tabla llamada `practicas` donde se registran procesos de práctica de estudiantes egresados, de donde debo sacar todos los campos y sacar además los datos de otra tabla donde están los datos personales del estudiante. Suponiendo que la segunda tabla se llamase `egresados`, lo lograría fácilmente así:

Código:
SELECT `practicas`.*, `egresados`.* 
FROM `practicas` 
INNER JOIN `egresados` ON `egresados`.`user_id` = `practicas`.`user_id` 
WHERE `codigo > 7`

El campo `user_id` lo uso para relacionar las dos tablas. El problema es que los datos de los egresados no están en una única tabla llamada `egresados`, sino en múltiples tablas terminadas con el año de egreso, desde 2005 hasta 2008.

O sea, debo hacer un SELECT a la única tabla que guarda informacón de los procesos, llamada `practicas`, pero el INNER JOIN para obtener los datos personales del egresado relacionado con el proceso se debe aplicar a una de las siguientes tablas:

egresados2005
egresados2006
egresados2007
egresados2008

Los datos estarán siempre en una sola de esas tablas. ¿Cómo hago el JOIN?
  #2 (permalink)  
Antiguo 13/11/2008, 12:05
 
Fecha de Ingreso: septiembre-2008
Mensajes: 53
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: JOIN a múltiples tablas similares.

Tenes dos opciones:

1) Hacer una vista de todas las tablas egresados juntadas con el union, y luego consultar a ese junte de toda las tablas

2) Hacer varios joins dividiendo por parentesis.
  #3 (permalink)  
Antiguo 13/11/2008, 13:33
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: JOIN a múltiples tablas similares.

Gracias, usuario1000. Me llama más la atención la primera opción, aunque en verdad la segunda tampoco la he usado y siempre quiero aprender cosas nuevas.

¿Cómo sería eso de juntar las tablas en una vista con UNION? ¿Cómo consulto luego a ese junte?

Quizá sean consultas muy básicas, pero estoy empezando en esto. Gracias de nuevo.
  #4 (permalink)  
Antiguo 13/11/2008, 20:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 53
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: JOIN a múltiples tablas similares.

basicamente usando la funcion UNION
mas info aca:

http://sql.1keydata.com/es/sql-union.php

y su uso es muy facil solo escribes y si quieres hacerlo una vista solo antepones la sentencia

CREATE VIEW {nombre_de_la_vista} AS {Consulta_SQL} y podrias consultar la vista como cualquier otra tabla

Código:
CREATE VIEW Egresados_Junto AS
SELECT *
FROM tabla1
UNION
SELECT *
FROM tabla2
UNION
SELECT * 
FROM tabla3
....
Cuidando q todas las tabla que estas uniendo tenga el mismo numero de campos.
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 14:00.