Select v MySql

Radek Kanovsky rk na dat.cz
Středa Listopad 21 10:21:51 CET 2001


On Wed, Nov 21, 2001 at 09:59:15AM +0100, Honza Pazdziora wrote:

> On Wed, Nov 21, 2001 at 09:44:36AM +0100, Karel Zak wrote:
> > On Wed, Nov 21, 2001 at 08:57:13AM +0100, Jirka K. wrote:
> > > SELECT c_prod.id_prod, c_prod.nazov, c_ver.verzia FROM c_prod, c_ver WHERE
> > >   c_ver .verzia=(SELECT c_ver.verzia, c_ver.datum FROM c_ver, c_prod WHERE
> > > c_ver.id_prod=c_prod.id_prod ORDER BY verzia DESC LIMIT 1,1)
> > >  AND c_ver.id_prod=c_prod.id_prod
> > > 
> > 
> >  Vy to mate rad slozite a pomalu, coz? :-)
> > 
> > 
> >  Je to typicka ukazka pouziti GROUP BY:
> > 
> >      SELECT p.nazov, v.datum, max(v.verzia) 
> >      FROM   c_ver v, c_prod p 
> >      WHERE  v.id_prod=p.id_prod 
> >      GROUP BY p.nazov, v.datum;
> 
> No nevim. Zadani pozaduje
[....]
> Obavam se, ze tohle cistym group by neudelate.

S GROUP BY to nejde a ten prvni priklad nefunguje kvuli vic
polozkam v subselectu. Zkuste to nejak takto:

SELECT c_prod.id_prod, c_prod.nazov, c_ver.verzia, c_ver.datum
FROM c_prod, c_ver
WHERE c_prod.id_prod = c_ver.id_prod
AND c_ver.verzia IN (SELECT MAX(verzia) FROM c_ver GROUP BY id_prod);

Zdravi

Radek Kaňovský


Další informace o konferenci Databases