Foros del Web » Programando para Internet » PHP »

Obtener los últimos n registros ingresados a una bd

Estas en el tema de Obtener los últimos n registros ingresados a una bd en el foro de PHP en Foros del Web. Lo que hacia normalmente es un "ORDER BY id DESC" pero en este caso se trata de registros almacenados en varias tablas diferentes, por lo ...
  #1 (permalink)  
Antiguo 05/02/2009, 13:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Obtener los últimos n registros ingresados a una bd

Lo que hacia normalmente es un "ORDER BY id DESC" pero en este caso se trata de registros almacenados en varias tablas diferentes, por lo que imagino que la otra via sería a traves de la fecha en la que se guardo la entrada.
Actualmente tengo un campo int donde guardo el resultado de time(), la pregunta es con ese dato como obtengo los ultimos n registros?
No se si hay alguna forma más directa, en cualquier caso espero sus sugerencias, muchas gracias.
  #2 (permalink)  
Antiguo 05/02/2009, 13:57
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Obtener los últimos n registros ingresados a una bd

Puedes seguir usando ORDER BY id DESC.

Aunque tengas un campo fecha, el ultimo ID no puede tener una fecha menor a una que ya ha sido insertada (con la funcion time()).

El hecho de que tengas que hacer un JOIN no significa que no lo puedas seguir haciendo asi.
SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.otro_id ORDER BY tabla1.id DESC LIMIT 10;
  #3 (permalink)  
Antiguo 05/02/2009, 14:43
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Obtener los últimos n registros ingresados a una bd

Gracias antes que nada.
Ahora el tema es que las ids se repiten en cada tabla, es decir se insertan mediante un campo auto_increment, para poner un ejemplo la estructura seria mas o menos asi:

tabla autos
id
modelo
color
....

tabla motos
id
marca
cilindrada
....

tabla camiones
id
carga
año
....

No creo una sola tabla "vehiculos" porque cada tipo de vehiculo tiene sus propias caracteristicas y son demasiados campos y muy pocos los que son comunes a todas las tablas.

Se entiende?
  #4 (permalink)  
Antiguo 05/02/2009, 14:46
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Obtener los últimos n registros ingresados a una bd

Entonces, cuando hagas un JOIN tienes que especificar a que tabla pertenece el campo.

SELECT * FROM <tabla> WHERE <tabla>.<campo> = 'loquesea';

SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.otro_id ORDER BY tabla1.id DESC LIMIT 10;
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 19:25.