Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 6. 8. 2008, 01:31:27
Zdravím,
nějak si nevím rady s tím, jak mám vybral uživatele, kteří jako poslední přispěli do diskuze. Mám u každého uživatele obnovovat čas po vložení příspěvku nebo to brát z posledních příspěvků a nebo pro to udělat další tabulku. Tabulka s uživateli má poměrně dost indexů, které jsou potřeba. Myslel jsem, že to vyberu takhle SELECT DISTINCT u.jmeno FROM uzivatele u, diskuze d WHERE d.uid = u.id ORDER BY d.cas LIMIT 10 ale tak to zrovna nefunguje, protože uživatel 1, který už napsal, pak napíše uživatel 2 a pak znovu 1, tak výsledek je 2,1 a ne 1,2 jak bych to chtěl... Poradí mi někdo, prosím? Díky |
||
Kajman_ Profil * |
Co zkusit něco na způsob
select u.jmeno from uzivatele u, (select d.uid, max(d.cas) posledni from diskuze d group by d.uid order by posledni desc limit 10) t where t.uid=u.id order by t.posledni desc Ale osobně, bych to dal asi do uzivatelu. Jestli to bude rozsáhlá diskuse, jak např. tu, tak v těch řešeních bude asi významný rozdíl. A indexy se při update budou přepočítávat snad jen pro sloupeček posledni_prispevek. |
||
joe Profil |
#3 · Zasláno: 6. 8. 2008, 22:58:38
Kajman_
Vyřešl jsem to tak, že jsem to dal k uživatelovi. Kouknul jsem, jak to mají nějaké jiné systémy řešené a pomohlo mi to... Díky, třeba to jednou budu taky tak umět:-) |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0