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

Unir varias tablas 'identicas' para mostar los ulimos X registros

Estas en el tema de Unir varias tablas 'identicas' para mostar los ulimos X registros en el foro de Mysql en Foros del Web. Hola de nuevo. He estado de vacaciones y no he tenido tiempo de responder. Ahora que vuelvo a hacer mis cositas con mysql y php ...
  #1 (permalink)  
Antiguo 15/09/2011, 11:51
 
Fecha de Ingreso: septiembre-2011
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Pregunta Unir varias tablas 'identicas' para mostar los ulimos X registros

Hola de nuevo. He estado de vacaciones y no he tenido tiempo de responder. Ahora que vuelvo a hacer mis cositas con mysql y php .. me surgen algunos "Impedimentos" que seguro tienen solución...

Para este caso que expongo arriba ya lo tengo solucionado.

Pero ahora tengo una duda, que quizas sea facil (o no) que es la siguiente:

Imaginemos ....

Tengo como 50 tablas (pero modo de ejemplo solo usaremos 3, pero son 50 o mas)

Cada tabla es idéntica en campos a las demás, lo único que cambia es el nombre de la tabla, que es algo así como "ID_XXXX" (donde XXXX es un numero de 4 cifras).

Uno de los campos que tiene todas esas tablas, es el date (Que es un timestamp de mysql, que se actualiza cada vez que se actualiza algún campo)

Pues bien, al kit de la cuestión:

Quiero que aparezcan los últimos, por ejemplo 20 entradas que se han agregado/modificado recientemente a partir de 'date' en todas las tablas ¿Como se puede hacer algo así?

De antemano muchas gracias :)
  #2 (permalink)  
Antiguo 15/09/2011, 12:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 10 meses
Puntos: 300
Respuesta: Unir varias tablas 'identicas' para mostar los ulimos X registros

Yo haría consultas con union all trayéndome los 20 registros más recientes de cada tabla, y luego con una subconsulta, me traería los 20 últimos de todos ellos.
SELECT * FROM ((SELECT * FROM tabla ORDER BY campofecha DESC limit 20)
UNION ALL
(SELECT * FROM tabla2 ORDER BY campofecha DESC limit 20)
UNION ALL
(SELECT * FROM tabla3 ORDER BY campofecha DESC limit 20))t1 ORDER BY t1.campofecha DESC LIMIT 20

No lo he probado, pero esta es la idea. Creo que se aceptan limit en consulta y subconsulta, pero no lo he probado.
  #3 (permalink)  
Antiguo 15/09/2011, 12:33
 
Fecha de Ingreso: septiembre-2011
Mensajes: 6
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Unir varias tablas 'identicas' para mostar los ulimos X registros

Cita:
Iniciado por jurena Ver Mensaje
Yo haría consultas con union all trayéndome los 20 registros más recientes de cada tabla, y luego con una subconsulta, me traería los 20 últimos de todos ellos.
SELECT * FROM ((SELECT * FROM tabla ORDER BY campofecha DESC limit 20)
UNION ALL
(SELECT * FROM tabla2 ORDER BY campofecha DESC limit 20)
UNION ALL
(SELECT * FROM tabla3 ORDER BY campofecha DESC limit 20))t1 ORDER BY t1.campofecha DESC LIMIT 20

No lo he probado, pero esta es la idea. Creo que se aceptan limit en consulta y subconsulta, pero no lo he probado.
Muchas gracias, ahora probaré.. y te cuento.

Etiquetas: campos, identicas, mostar, php, registros, sql, tabla, tablas
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:35.