Autor Zpráva
juneau
Profil
Mam tabulku komentaru: id | id_textu | jmeno | sekundy |... id_textu je id clanku, pod kterym je komentar ulozen a sekundy je unix timestamp (pocet sekund od 1970). Potreboval bych v dotazu vratit pro kazdy text jmeno a sekundy POSLEDNIHO komentare.

Dotaz "SELECT id_textu,jmeno,sekundy FROM web_komentare WHERE videt='1' GROUP BY id_textu ORDER BY id_textu DESC" mi pro 99% textu vrati spravne udaje, ale pro zbyle 1% nahodny komentar (resp vzdy stejny, ale ne posledni). Prijde mi, ze zaznamy vracene timto dotazem ovlivnim i tim, pridam-li LIMIT nebo ne. Zvlastni.
Kajman_
Profil *
Dělá se to tak, že se výsledek toho group by ještě slinkuje s tou samou tabulku s podmínkou, že id_textu bude rovno a maximalni sekundy bude rovnou sekundam z negroupované tabulky.
juneau
Profil
Presne tak jsem to dnes odpoledne vyresil

SELECT max(k.id) id, k.id_textu,a.jmeno,k.sekundy
FROM web_komentare k
LEFT JOIN web_komentare a USING(id)
WHERE videt='1'
GROUP BY id_textu
ORDER BY id_textu DESC

Tento tvar vyhodi spatne vysledky... proste to nejsou podledni komentare (nejvyssi id).

Staci ale na konec pridat LIMIT 0,5000 (napr) a vyhodi to vysledky spravne. Nechapu to, ale co s tim muzu delat.
Kajman_
Profil *
a co?
LEFT JOIN web_komentare a ON max(k.id)=a.id
juneau
Profil
To jsem samozrejme zkousel, ale napsalo mi to neco o nepovolenem pouziti group fce.
Kajman_
Profil *
Mrkni na komentáře v manuálu, je tam pár řešení.

http://dev.mysql.com/doc/refman/4.1/en/example-maximum-column-group-ro w.html
juneau
Profil
Diky za podnetny odkaz, ale jak jsem psal vyse, reseni uz mam. Jen porad nechapu, jak je mozne, ze stejny dotaz vraci ruzne vysledky podle toho, zda je u nej LIMIT nebo ne.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0