Autor Zpráva
joe
Profil
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
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:-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0