[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