[Php-avanzado] Consulta entre dos tablas
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Vie Oct 1 08:57:18 ART 2010
Ahhh!!!
Entonces, sacale el LIMIT que te había dicho, y comenzá la query con
SELECT DISTINCT ...
Sin embargo, tal vez esto no funcione porque en realidad las filas no
estarán repetidas cuando haya distintas imágenes... probalo y contanos,
y si no vamos a tener que armar una subquery que devuelva solo un
registro por cada noticia.
El vie, 01-10-2010 a las 08:38 -0300, Silverzero escribió:
> Si, pero en ese caso me lista una noticia sola, no?.
> Yo quiero un listado completo de noticias por página, en donde cada
> noticia se muestra con ninguna (si no tuviese) o sólo una imagen, para
> que luego se pueda seleccionar una y ver todo el contenido completo.
>
> 2010/10/1 Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar>
> 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
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
>
>
>
> --
> Carolina Derromediz
> Cel. +54 223 5301599
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
--
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