Cita:
Iniciado por dieguicho
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 originalSELECT 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.