Hallo..
ich verwende folgende Tabelle für meine Sessions:
In Verbindung meiner Usertabelle möchte ich User-Logins absteigend sortieren & darstellen - und das wenn möglich, möglichst über MySQL. Das Problem ist, dass DISTINCT oder GROUP BY sich den ersten DS mit kleinsten ID bzw. "ältesten" Eintrag "schnappt".
Die Abfrage sieht im Moment wie folgt aus:
Für mich gibt es anscheinend keine Lösung? Es wäre interessant zu erfahren, wie man so ein "Group by - ORDER BY"-Problem am besten löst... :]
Ich hoffe, dass Thema ist kein No-Way-Thread :P
Grüße
ich verwende folgende Tabelle für meine Sessions:
Code:
CREATE TABLE `cms_sessions` ( `ses_id` int(10) NOT NULL auto_increment, `ses_session` varchar(255) NOT NULL default '', `ses_dateon` datetime NOT NULL default '0000-00-00 00:00:00', `ses_dateoff` datetime default NULL, `ses_ip` varchar(255) NOT NULL default '', `ses_client` text NOT NULL, `ses_host` varchar(255) NOT NULL default '', `ses_user_id` int(10) NOT NULL default '0', `ses_lastact` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`ses_id`), KEY `ses_session` (`ses_session`,`ses_user_id`) ) TYPE=MyISAM AUTO_INCREMENT=159 ;
Die Abfrage sieht im Moment wie folgt aus:
Code:
SELECT DATE_FORMAT(MAX(s.ses_dateon), '%d.%m.%Y - %H:%i') AS ses_dateon, s.ses_user_id AS user_id, u.user_gender FROM ".T_SESSIONS." s INNER JOIN ".T_USERS." u ON s.ses_user_id = u.user_id WHERE u.user_active = '1' AND u.kill_account IS NULL GROUP BY s.ses_user_id ORDER BY s.ses_dateon DESC LIMIT ".$max."
Für mich gibt es anscheinend keine Lösung? Es wäre interessant zu erfahren, wie man so ein "Group by - ORDER BY"-Problem am besten löst... :]
Ich hoffe, dass Thema ist kein No-Way-Thread :P
Grüße
EDIT:
In der Tabelle können von einem jeweiligen User mehrere Einträge vorhanden sein.
Wen's juckt: Logins die über 3 Monate her sind, werden per Cronjob einmal am Tag gekillt
Kommentar