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