Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2008, 01:55
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: forma mas sana de obtener ultima foto.

Cita:
Iniciado por dieguicho Ver Mensaje
hola amigos,
estoy usando mysql y la estructura de mis tablas es la siguientes

usuarios.id, usuarios.nombre
fotos.id, fotos.id_usuario

cual les parece que seria la forma mas adecuada de obtener la ultima foto de cada usuario?

SELECT usuarios.id, usuarios.nombre, MAX(fotos.id) as ultima
FROM usuarios
LEFT OUTER JOIN fotos.id_usuario = usuarios.id
GROUP BY usuarios.id
ORDER BY usuarios.id

me parecece que el MAX() está haciendo que mi consulta se ejecute muy lentamente..
muchas gracias por vuestra ayduda, saludos para todos!!
Prueba esto. No lo he probado, aunque si funciona creo que será más rápido.
Código sql:
Ver original
  1. SELECT usuarios.id, usuarios.nombre, IFNULL(t1.ultima, 'no tiene fotos') AS fotoultima FROM usuarios LEFT JOIN (SELECT fotos.id_usuario usuario, MAX(fotos.id) ultima FROM fotos GROUP BY fotos.id_usuario)t1 ON usuarios.id = t1.usuario

No obstante, quizás no te vendría mal incluir un campo más para la fecha en que se incluyó la foto.