[Php-avanzado] Consulta entre dos tablas

Silverzero silverzero.52 en gmail.com
Vie Oct 1 09:06:22 ART 2010


También había probado una subquery con MIN (data.id) pero eso me listaba
solo una noticia (la que tenía asociada la imagen de menor id), pero yo lo
que buscaba era la de menor id de cada noticia...



2010/10/1 Silverzero <silverzero.52 en gmail.com>

> Si, DISTINCT tambien lo había probado pero no me funcionó... :/
>
>
> 2010/10/1 Leonardo Tadei - Pegasus Tech Supply <
> leonardot en pegasusnet.com.ar>
>
>> 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
>>
>> _______________________________________________
>> 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
>



-- 
Carolina Derromediz
Cel. +54 223 5301599
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20101001/20b45795/attachment.htm 


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