Foros del Web » Programando para Internet » PHP »

Ordenar por fecha registros de diversas tablas

Estas en el tema de Ordenar por fecha registros de diversas tablas en el foro de PHP en Foros del Web. Hola! mi consulta es la siguiente: tengo una serie de registros distribuidos en tres tablas distintas (noticias, reportajes, críticas). Cada una de estas tres tablas ...
  #1 (permalink)  
Antiguo 20/02/2008, 04:10
 
Fecha de Ingreso: febrero-2008
Ubicación: Barcelona
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Ordenar por fecha registros de diversas tablas

Hola!

mi consulta es la siguiente: tengo una serie de registros distribuidos en tres tablas distintas (noticias, reportajes, críticas). Cada una de estas tres tablas tiene un campo llamado "fecha" que marca la fecha de inserción del registro. En la web, quiero hacer un listado que ordene los registros de las tres tablas por fecha (de más reciente a más antiguo), sin hacer distinción de tablas. Es decir, no quiero que primero me salgan todas las noticias, luego todos los reportajes y luego todas las críticas, sino que valga el criterio de fecha independientemente de la tabla del registro.

No sé me ocurre la manera de hacerlo, ya que si creo una query que una las tres tablas, al hacer el order by siempre me ordenadará primero por el campo fecha de la tabla que elija en primer lugar (...order by noticias.fecha, reportajes.fecha...)


¿Alguna idea? ¿Se puede hacer? soy nuevo programando en php, no sé si es una tonteria lo que pretendo o muy complicado o sencillamente no se puede hacer...
  #2 (permalink)  
Antiguo 20/02/2008, 09:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ordenar por fecha registros de diversas tablas

No puedes hacerlo así, de hecho el problema viene mas de fondo, el diseño de tu base de datos esta mal, lo mejor es que todos los datos estuvieran en la misma tabla y así podrás ordenar por fecha y solo detectar que tipo de registro es (noticia, reportaje o critica).

Saludos.
  #3 (permalink)  
Antiguo 20/02/2008, 13:38
 
Fecha de Ingreso: febrero-2008
Ubicación: Barcelona
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ordenar por fecha registros de diversas tablas

Muchas gracias por la respuesta. Entonces, una pregunta, independientemente de que para lo que yo deseo hacer la solución sea la que dices: ¿a nivel de rendimiento de la base de datos mysql y de la web, es mejor tener una sola tabla con muchos registros -pues cada categoría tiene como 20000 registros- sobre la que hacer las consultas, o diversas tablas más pequeñas? Gracias!
  #4 (permalink)  
Antiguo 20/02/2008, 13:41
 
Fecha de Ingreso: junio-2004
Ubicación: Stgo, Chile
Mensajes: 51
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Ordenar por fecha registros de diversas tablas

La solución es haciendo un UNION entre las tres tablas.
la idea es la siguiente:
SELECT nombre FROM tabla1
UNION SELECT nombre FROM tabla2
UNION SELECT nombre FROM tabla 3
ORDER BY fecha

El unico requisito es que en las 3 tablas recuperes el mismo tipo de campo.

Saludos,
Victoria
  #5 (permalink)  
Antiguo 20/02/2008, 13:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ordenar por fecha registros de diversas tablas

Es mejor tener una tabla general.

Saludos.
  #6 (permalink)  
Antiguo 20/02/2008, 13:47
 
Fecha de Ingreso: junio-2004
Ubicación: Stgo, Chile
Mensajes: 51
Antigüedad: 19 años, 10 meses
Puntos: 0
Re: Ordenar por fecha registros de diversas tablas

Lo mejor es tener un buen modelo de datos!! jejeje

Además los UNION enlentecen terriblemente las búsquedas. De todos modos sería la solución para lo que pregunta swallow.

Salu2,
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 13:44.