Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/11/2009, 06:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: Como Puedo hacer este select

Es más simple de lograr con un GROUP BY, el cual realiza, al menos en MySQL, una "acumulación" de los campos que no se declaran en el GROUP BY. De esa forma, devolverá solamente un registro por cada id_publicación distinto, y sólo la primer imagen de la lista.
Para hacer que muestre la primer imagen de un orden determinado, por ejemplo la última ingresada y no la primera, se debe usar algún campo o campos adicionales en un ORDER BY para lograr que la primera imagen del grupo sea la deseada.
Código:
SELECT 
   pub.id_publicacion,
   o.url_imagen
FROM 
   publicaciones pub INNER JOIN imagenes o
   ON pub.id_publicacion = o.id_publicacion
GROUP BY id_publicacion;
Otro tip: Las igualaciones de tipo pub.id_publicacion = o.id_publicacion en un JOIN no deben ir en el WHERE sino en el FROM usando la cláusula ON. Esto es así, además de razones de sintaxis, porque eso le permite al MySQL optimizar internamente la consulta; en cambio si lo pones en el WHERE, no es optimizable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)