[Php-avanzado] Consulta entre dos tablas

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Vie Oct 1 08:28:13 ART 2010


Hola Carolina,

	si solo querías la primer imagen, tu 1er query estaba bien, solo que al
final tenías que agregarle un LIMIT 0,1

	El LIMIT es a toda la query...

El vie, 01-10-2010 a las 07:30 -0300, Silverzero escribió:
> No, solo una. Porque es para el listado de todas las noticias, y
> queria que se mostrara cada una con una imagen de todas las que
> tuviera asociadas (hubiera sido ideal la de menor ID).
> 
> 2010/10/1 Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar>
>         Pero esa query no te devuelve todas las imágenes... no te
>         hacían falta
>         todas???
>         
>         El vie, 01-10-2010 a las 00:24 -0300, Silverzero escribió:
>         
>         > Hola Leo,
>         >
>         > Gracias por la respuesta.
>         > Lo arreglé así:
>         >
>         >     $qry="SELECT
>         >             news.id,
>         >             tit,
>         >             cop,
>         >             des,
>         >             fecha,
>         >             ruta as img
>         >         FROM
>         >             news
>         >         LEFT JOIN
>         >             data
>         >         ON
>         >             news.id = id_news AND tipo = 'img'
>         >         GROUP BY
>         >             news.id
>         >         ORDER by
>         >             fecha DESC,
>         >             id DESC";
>         >
>         > Lo único es que me elige una imagen a criterio desconocido,
>         pero me da
>         > la impresión que es una con el id intermedio porque nunca es
>         la mayor
>         > ni la menor.
>         >
>         > 2010/9/30 Leonardo Tadei - Pegasus Tech Supply
>         > <leonardot en pegasusnet.com.ar>
>         >         Hola Carolina,
>         >
>         >         El jue, 30-09-2010 a las 21:07 -0300, Silverzero
>         escribió:
>         >         > Hola tengo un problema con una consulta a dos
>         tablas (que
>         >         seguro es
>         >         > una pavada y yo no la veo), en una tengo noticias
>         y en otra
>         >         guardo
>         >         > archivos, videos e imagenes de cada noticia, que
>         pueden ser,
>         >         ninguna o
>         >         > más de una.
>         >         > Cuando listo las noticias quiero que se vea UNA de
>         las fotos
>         >         (la de ID
>         >         > menor), titulo, fecha, copete/desarrollo. Pero
>         cuando una
>         >         noticia
>         >         > tiene más de una imagen me lista la noticia
>         repetida tantas
>         >         veces como
>         >         > imágenes haya asociadas.
>         >
>         >
>         >                Esto está bien, y es como se espera que
>         funcione una
>         >         query: creciendo
>         >         "para abajo" con tantos registros como datos tenga
>         la
>         >         respuesta.
>         >                Por lo que planteás, es como que esperás que
>         la
>         >         respuesta "se más
>         >         ancha", es decir, tenga más columnas, pero nunca vas
>         a tener
>         >         más
>         >         columnas que las que estés proyectando.
>         >
>         >                La solución a aplicar es programática: en la
>         primer
>         >         iteración de la
>         >         query, rescatá los datos de News, y de la 1ra y las
>         >         siguientes, usá solo
>         >         los datos proyectados de Data.
>         >
>         >
>         >         > Mi consulta original es
>         >         >
>         >         >     $qry="SELECT
>         >         >             news.id,
>         >         >             tit,
>         >         >             cop,
>         >         >             des,
>         >         >             fecha,
>         >         >             ruta as img
>         >         >         FROM
>         >         >             news
>         >         >         LEFT JOIN
>         >         >             data
>         >         >         ON
>         >         >             news.id = id_news AND tipo = 'img'
>         >         >         ORDER by
>         >         >             fecha DESC,
>         >         >             id DESC";
>         >         >
>         >         > Había probado hacer una consulta anidada en
>         reemplazo de
>         >         ruta as img,
>         >         > por SELECT ruta FROM news, data WHERE news.id =
>         id_news AND
>         >         tipo =
>         >         > 'img' LIMIT 0,1, para que me devuelva una sola,
>         pero se me
>         >         repite la
>         >         > misma imagen en cada noticia...
>         >         >
>         >         > Gracias
>         >
>         >
>         >                Por nada!
>         >                (si se entiende)

> 
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado