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

sentencia entre tablas

Estas en el tema de sentencia entre tablas en el foro de Mysql en Foros del Web. saludos, estoy intentando unir dos tablas relacionadas 1 a N adquiriendo un único registro de la relacion que se define mediante un simple t1.id=t2.id pero ...
  #1 (permalink)  
Antiguo 12/08/2008, 12:56
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 9 meses
Puntos: 2
sentencia entre tablas

saludos,

estoy intentando unir dos tablas relacionadas 1 a N adquiriendo un único registro
de la relacion que se define mediante un simple t1.id=t2.id pero quiero que únicamente aparezca el registro con la fecha más alta,
por abreviar la estructura de las tablas es:
t1 -> id
t2 -> id , t2-> fecha

al realizar el select quiero obtener un único resultado por cada id de la tabla 1 que tenga como fecha, la fecha más alta de la asociación t1.id=t2.id

me gustaría saber que manera sería la más óptima de realizar dicha selección

P.D. añadir que he estado efectuando multitud de consultas/pruebas con cientos de miles de datos y me han llegado a tardar en ejecutarse hasta 120 segundos, otras 25 segundos, 3 segundos ... , de ahí mi interes en conocer la manera más óptima
  #2 (permalink)  
Antiguo 12/08/2008, 20:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 10
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: sentencia entre tablas

Primero los intenta de cambiar uno de los nombre de los campos en la base de datos para que no se repitan

Select
campos
from t1 inner join t2 on t1.id = t2.id_
where fecha=(select max(fecha) from t1 inner join t2 on t1.id = t2.id_)

Prueba con eso
  #3 (permalink)  
Antiguo 13/08/2008, 03:12
 
Fecha de Ingreso: julio-2007
Mensajes: 239
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: sentencia entre tablas

me temo que no es una consulta óptima ya que tarda 70 segundos en ejecutarse

¿alguna otra sugerencia?
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 04:53.