Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/02/2010, 03:42
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Consulta a dos tablas

Sí. Vamos por pasos para que lo entiendas. Al final te daré un consulta.

Supongamos que fecha de historial es DATETIME con o que dos modificaciones del mismo dia se ordenaran bien.

Primer paso

Código MySQL:
Ver original
  1. Select F.id,
  2.           F.nombre,
  3.           F.telefono, ... ,
  4.           max(H.fecha) UltimoHistorial
  5. FROM fichas F left join historial H
  6.         on F.id=H.id_ficha
  7. group by F.id, F.nombre, F.telefono, ... ;

Así tenemos el ultimo registro de historial relacionado con cada ficha.

Código MySQL:
Ver original
  1. Select sbc.id, sbc.nombre, sbc.telefono, ... , H2.fecha, H2.cambio
  2. FROM  (Select F.id,
  3.                  F.nombre,
  4.                  F.telefono, ... ,
  5.                  max(H.fecha) UltimoHistorial
  6.               FROM fichas F left join historial H
  7.                        on F.id=H.id_ficha
  8.                        group by F.id, F.nombre, F.telefono, ... ) sbc
  9.           INNER JOIN historial H2
  10.                  ON sbc.UltimoHistorial=H2.fecha
  11.                            AND sbc.id=H2.id_ficha;

Volvemos a relacionar la consulta primera (sbc) con la tabla historial (H2) y obtenemos el resultado pedido.

Quim