[Php-avanzado] Consulta entre dos tablas

Silverzero silverzero.52 en gmail.com
Vie Oct 1 13:06:57 ART 2010


No te dije que "efecto" era: me repite la misma imagen para todas las
publicaciones listadas.

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

> No anda lo que se te habia ocurrido...eso me hace el mismo efecto que había
> hecho anteriormente con
>
> SELECT
>             news.id,
>             tit,
>             cop,
>             des,
>             fecha,
>             (SELECT ruta FROM data, news WHERE news.id=id_news
> LIMIT 0,1) as img
>
>         FROM
>             news
>         LEFT JOIN
>             data
>         ON  news.id = id_news AND tipo = 'img'
>         ORDER by
>             fecha DESC,
>             id DESC
>
> Ya fué, lo dejo con GROUP BY, más adelante trataré de resolverlo, porque
> seguro en algun momento voy a necesitar listar algo con otro algo específico
> de un grupo en particular.
>
>
> 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
>



-- 
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/1187cc64/attachment-0001.htm 


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