Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/07/2008, 01:22
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Traer ultimos registros de una tabla "relacionada" con otra tabla.

Cita:
TABLA "amigos"

id - id_usuario - id_amigo


TABLA "fotos"

id - id_usuario - fecha - foto - mensaje

Lo que estoy tratando de hacer es, a partir del ID del usuario, buscar a sus amigos y traer la última foto de cada uno de ellos.
Creo que te falta una tabla, la de usuarios, porque un amigo de usuario será también un usuario. Creo que necesitas esa tabla en la que id_usuario será PK. Lo que tienes te obligará a indexar id_usuario e id_amigo de la tabla amigos, y creo que la otra será una estructura más eficaz, aunque te obligue a realizar otro cruce. No obstante, te pondré lo que yo haría con lo que tienes.

Si buscamos las fotos últimas de los amigos del usuario con id_usuario 5.

SELECT a.id_amigo, T1.foto, T1.fechafoto FROM amigos a INNER JOIN (SELECT f.id_usuario, MAX(f.fecha) as fechafoto, f.foto AS foto FROM fotos f GROUP BY id_usuario) AS T1 ON a.id_amigo = f.id_usuario WHERE a.id_usuario = 5

No lo he probado