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


Hatte leider auch nichts gebracht. Deswegen hatte ich danach gleich:
Kommentar