[Php-avanzado] Consulta entre dos tablas

Silverzero silverzero.52 en gmail.com
Vie Oct 1 10:59:09 ART 2010


Claro! Eso eso eso, lo pruebo y te cuento.

2010/10/1 Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar>

> Entonces, una subquery con la forma:
>
> SELECT
>             news.id,
>             tit,
>             cop,
>             des,
>             fecha,
>             ruta as img
>         FROM
>             news
>         LEFT JOIN
>             data
>          ON  news.id = (SELECT id_news FROM data WHERE news.id=id_news
> LIMIT 0,1)
>                 AND tipo = 'img'
>         ORDER by
>             fecha DESC,
>             id DESC
>
>         Es decir, hacés el LEFT JOIN relacionando news.id con el resultado
> de
> una query que te devuelve solo un registro de data.
>        Puede ser que haga falta usar algún alias para desambiguar algún
> campo,
> pero la idea es esa...
>
> El vie, 01-10-2010 a las 09:01 -0300, Silverzero escribió:
> > 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
> > _______________________________________________
> > 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
> Pegasus Tech Supply
> Tel: (+54)(+223) 471-2880
> La Salle 1131 - Mar del Plata - Argentina
> http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
> http://www.prometeustech.com.ar / http://www.grupopegasus.com
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20101001/97aef22d/attachment-0001.htm 


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