MySQL, dotaz na nejvyssi verzi

Honza Pazdziora adelton na informatics.muni.cz
Čtvrtek Listopad 22 14:59:30 CET 2001


On Thu, Nov 22, 2001 at 02:46:41PM +0100, Karel Zak wrote:
> 
>  Uf... ctete toto konferenci? Vzdyt se to tu resilo snad vcera.

Chmm, to sice jo, ale nepamatuji se, ze by tady slo verbatim reseni,
ktere by vyhovovalo zadani, ktere je zde zda se stejne jako u pana
Vdoviaka. Tedy ze to ma bezet na MySQL, kde nemate subselecty, ze
se ma najit nejen select id, max(verze) from tabulka group by id, ale
i ten sloupec s hodnotou obsah, ze se nema spolehat na to, ze pro
vetsi verzi je vetsi i obsah (takze nepomuze select id, max(verze),
max(obsah)), ze u ruznych produktu mohou byt i stejne verze, takze tim
pada i to reseni pana Kanovskeho ...

Subselecty je mozne (a pravdepodobne nutne) nahranit outer joinem,
a pak uz ani neni potreba delat group by, protoze se proste udela (uz
mnou navrhovane ;-)

	select a.*
	from b_ad_verze a left outer join b_ad_verze b
	on a.id = b.id and a.verze < b.verze
	where b.verze is null

Coz je mimochodem reseni, ktere chodi velmi obstojne i na Oraclu,
rozhodne neni pomalejsi nez subselect.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
   .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, DBD::XBase.
------------------------------------------------------------------------


Další informace o konferenci Databases