[Php-avanzado] Consulta entre dos tablas

Silverzero silverzero.52 en gmail.com
Mar Dic 28 22:40:46 ARST 2010


Hola Leo!!

Probé tu consulta y anduvo bien!!
Gracias!!

Feliz año, que la pases muy bien!
Saludos!

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

> Hola Carolina,
>
>        tenía este e-mail dando vueltas hace rato, pero sin tiempo de jugar
> un
> rato con los datos.
>
>        Para estas tablas, y si no recuerdo mal, lo que había que proyectar
> era: todas las noticias con el primer "data" que tengan siempre y cuando
> sea de tipo imagen.
>
>        La query me quedó muy simple (o no recuerdo bien la proyección a
> hacer):
>
> SELECT N.id, N.tit, N.cop, N.des, N.fecha, D.id, D.ruta
> FROM (
> news AS N
> )
> LEFT JOIN DATA AS D ON ( N.id = D.id_news
> AND D.tipo =  'img' )
> GROUP BY N.id
>
>        Esto me devuelve todas las News, tengan o no Data de tipo imagen, y
> si
> tienen imagen, me devuelve la primera.
>
>        Una salida de ejemplo con tus datos, y una noticia sin 'data' para
> testear que también aparezca me dió:
>
> id      tit                                                     cop
>                                             des
>                         fecha           id      ruta
> 23      Lorem ipsum dolor sit amet, consectetuer adipiscin...   Phasellus
> viverra nulla ut metus varius laoreet. Q...    Nam quam nunc, blandit vel,
> luctus pulvinar, hend...   2010-09-14      14      img1.jpg
> 24      Lorem ipsum dolor sit amet, consectetuer adipiscin...   Phasellus
> viverra nulla ut metus varius laoreet. Q...    Nam quam nunc, blandit vel,
> luctus pulvinar, hend...   2010-09-10      15      img2.jpg
> 25      un título                                               un copete
>                                             una descripción...
>                        2010-10-22      NULL    NULL
>
>        Estoy proyectando también el id de data para ver que sea el más
> chico.
>
>        Era esto???
>
>
> El vie, 01-10-2010 a las 18:43 -0300, Silverzero escribió:
> > Ahi mando!
> >
> > Estructura de tabla para la tabla `data`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `data` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `id_news` int(11) NOT NULL,
> >   `ruta` text collate utf8_unicode_ci NOT NULL,
> >   `tipo` varchar(50) collate utf8_unicode_ci NOT NULL,
> >   `titulo` varchar(255) collate utf8_unicode_ci NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=17 ;
> >
> > --
> > -- Volcar la base de datos para la tabla `data`
> > --
> >
> > INSERT INTO `data` (`id`, `id_news`, `ruta`, `tipo`) VALUES
> > (13, 23, 'archivo.ppt', 'file),
> > (14, 23, 'img1.jpg', 'img'),
> > (15, 24, 'img2.jpg', 'img'),
> > (16, 24, 'img3.jpg', 'img');
> >
> > Estructura de tabla para la tabla `news`
> > --
> >
> > CREATE TABLE IF NOT EXISTS `news` (
> >   `id` int(11) NOT NULL auto_increment,
> >   `usr_id` int(11) NOT NULL,
> >   `fecha` date NOT NULL,
> >   `tit` varchar(255) collate utf8_unicode_ci NOT NULL,
> >   `cop` text collate utf8_unicode_ci NOT NULL,
> >   `des` text collate utf8_unicode_ci NOT NULL,
> >   PRIMARY KEY  (`id`)
> > ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
> > AUTO_INCREMENT=25 ;
> >
> > Volcar la base de datos para la tabla `news`
> > --
> >
> > INSERT INTO `news` (`id`, `usr_id`, `fecha`, `tit`, `cop`, `des`)
> > VALUES
> > (24, 1, '2010-09-10', 'Lorem ipsum dolor sit amet, consectetuer
> > adipiscing elit. ', 'Phasellus viverra nulla ut metus varius laoreet.
> > Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue.
> > Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus.
> > Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper
> > libero, sit amet adipiscing sem neque sed ipsum.', ' Nam quam nunc,
> > blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio
> > et ante tincidunt tempus. Donec vitae sapien ut libero venenatis
> > faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus
> > tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales
> > sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit
> > cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend
> > sapien.'), (23, 1, '2010-09-14', 'Lorem ipsum dolor sit amet,
> > consectetuer adipiscing elit. ', 'Phasellus viverra nulla ut metus
> > varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi
> > vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam
> > rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam
> > semper libero, sit amet adipiscing sem neque sed ipsum.', ' Nam quam
> > nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec
> > odio et ante tincidunt tempus. Donec vitae sapien ut libero venenatis
> > faucibus. Nullam quis ante. Etiam sit amet orci eget eros faucibus
> > tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales
> > sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit
> > cursus nunc, quis gravida magna mi a libero. Fusce vulputate eleifend
> > sapien.');
> >
> >
> >
> > 2010/10/1 Leonardo Tadei - Pegasus Tech Supply
> > <leonardot en pegasusnet.com.ar>
> >         Carolina,
> >
> >         El vie, 01-10-2010 a las 13:06 -0300, Silverzero escribió:
> >
> >         > No te dije que "efecto" era: me repite la misma imagen para
> >         todas las
> >         > publicaciones listadas.
> >
> >
> >                Entonces falta algún alias para desambiguar un campo de
> >         la query
> >         respecto de la subquery...
> >                De veras, mandá la estructura de las 2 tablas y un par
> >         de datos de
> >         pruebas y lo vemos!
> >
> >
> >
> >         > 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.
> >         >
> >         >
>
>
> --
>
> 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20101228/669db5b5/attachment.htm 


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