Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
tabulka.clanky
id | nadpis | datum | kategorie | dalsi_nepotrebne_sloupce tabulka.kategorie id_kategorie | nazev_kategorie Kategorii je asi 10, clanku asi 200 Potrebuji pro kazdou kategorii vybrat nejnovejsi clanek Splodil jsem toto SELECT t1.id, t1.nadpis, t2.datum, t1.datum, t2.kategorie FROM clanky t1 JOIN ( SELECT t2.kategorie, MAX(t2.datum) datum FROM clanky t2 GROUP BY t2.kategorie) t2 ON t1.kategorie = t2.kategorie AND t1.datum = t2.datum Samozrejme tam chybi jeste napojeni na tabulku kategorie kvuli nazvu , ale to je vedlejsi. Zajimalo by mne, zdali by to slo jinak nez napojenim na neexistujici tabulku ktera vznikla poddotazem uz z toho duvodu ze kdybych spojoval vetsi pocet zaznamu tak by to nemuselo byt rychle, protoze na Datu nemam index a neni tam treba ... Diky ;] |
||
Kajman_ Profil * |
#2 · Zasláno: 9. 4. 2008, 19:45:30
Pokud i id lze použít na rozlišení novějších článků, tak by mohlo být rychlejší
select * from clanky t1 where t1.id in (select max(t2.id) id from clanky t2 group by t2.kategorie) |
||
Kcko Profil |
#3 · Zasláno: 9. 4. 2008, 20:36:56
gracias maestro jako vzdy ostatne
|
||
ninja Profil |
#4 · Zasláno: 9. 4. 2008, 21:28:17
Spolehat se na to, ze nejvetsi id = nejnovejsi clanek je dost osemetne.
|
||
Kcko Profil |
#5 · Zasláno: 9. 4. 2008, 22:44:13
Tak zkus navrhnout dalsi reseni ;]
|
||
Časová prodleva: 16 let
|
0