Autor Zpráva
danhill
Profil
Zdravím kapacity tohoto webu.
Již několikrát jsem narazil na takový problém, který trochu nevím jak se správně v praxi řeší.
pomáhám si více dotazy, ale to určitě není správný postup.
Mám například tabulku 'messages' :
id | topic
1 | 1
2 | 1
3 | 1
4 | 2
5 | 2
6 | 3

a potřebuji zjistit poslední id z topiců.
normálně bych dal něco jako :
SELECT * FROM messages GROUP BY topic
Jenže takový dotaz naopak vrátí ty nejnižší id.

Výsledek dotazu by měl vrátit :
id | topic
3 | 1
5 | 2
6 | 3

Ale to nevím jak toho elegantně dosáhnout jedním dotazem.
Kajman
Profil
SELECT Max(id) posledni FROM messages GROUP BY topic

S tím, že při velkém počtu řádků pomůže rychlosti dotazu dvousloupcový index (topic,id).
danhill
Profil
Perfektní, mockrát děkuji !

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0