[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