Autor Zpráva
drak654
Profil
V tabuľke navstevy mám tri stĺpce: id, ip, date - v unixovom formáte. Všetko funguje ako má, ak niekto príde na stránku, prístup sa uloží do tabuľky.
Chcem si však vypísať kto kedy prišiel na stránku. MySQL query:
SELECT id,ip,`date` FROM navstevy GROUP BY ip ORDER BY `date`
Lenže date mi vráti prvý dátum, kedy bola ip adresa pridaná do tabuľky a chcem aby mi vrátilo posledný prístup ip adresy. Ako na to?
Fisak
Profil
ORDER BY určuje podle čeho se to má řadit takže bych tam místo date dal id a ještě za to DESC nebo ASC (sestupně, vzestupně) ... v praxi stačí za ORDER BY `date`dát DESC ... výsledek "SELECT id,ip,`date` FROM navstevy GROUP BY ip ORDER BY `date` DESC"
drak654
Profil
Nepochopili sme sa. Ja som chcel, aby sa to usporiadalo ešte pred tým ako sa to zoskupí. Aby vtedy keď sa to zoskupí, aby tam zobrazovalo posledný čas tej-onej IP. GROUP BY ip ORDER BY `date` zoradí už zoskupené výsledky, ale pri každej ip zobrazí jej prvý čas.
Kajman
Profil
select n.*
from   navstevy n
join   (select max(id) id FROM navstevy GROUP BY ip) m
on     n.id = m.id

Jinak pokud neplatí, že id je u nových vždy větší, můžete použít verzi z faq.

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: