Ausgabe von Distinct umsortieren
Ausgabe von Distinct umsortieren
am 26.11.2007 20:18:49 von Mario Ramseier
Guten Abend allerseits
Ich stehe gerade etwas auf dem Schlauch, ich logge in einer Tabelle Besuche
von Usern auf Userprofilen von anderen Membern. Diese möchte ich nun
ausgeben (konsolidiert pro User) und jeweils diesen anhand des letzten
Besuches einreihen.
Tabelle:
userid visitoruserid datetime
2 3 2007-11-26 17:29:06
2 1 2007-11-26 13:45:06
2 1 2007-11-25 14:02:43
2 10 2007-11-25 14:02:17
2 1 2007-11-25 14:02:10
Wenn ich nun folgende Query anwende "SELECT DISTINCT (`visitoruserid` ) FROM
user_profilevisit WHERE userid =2 ORDER BY datetime DESC" ist dass Ergebnis:
3, 10, 1
Ziel wäre aber 3, 1, 10
Kann ich irgendwie die Sortierung/Gruppierung anpassen?
Grüsse und Danke für sachdienliche Hinweise
Mario
Re: Ausgabe von Distinct umsortieren
am 26.11.2007 21:07:00 von Sebastian Suchanek
Mario Ramseier schrieb:
> [...]
> Wenn ich nun folgende Query anwende "SELECT DISTINCT (`visitoruserid` ) FROM
> user_profilevisit WHERE userid =2 ORDER BY datetime DESC" ist dass Ergebnis:
> 3, 10, 1
> Ziel wäre aber 3, 1, 10
>
> Kann ich irgendwie die Sortierung/Gruppierung anpassen?
> [...]
Ungetestet:
SELECT visitoruserid, MAX(datetime) Loginzeit
FORM user_profilevisit
WHERE userid=2
GROUP BY visitoruserid
ORDER BY Loginzeit DESC
HTH,
Sebastian
Re: Ausgabe von Distinct umsortieren
am 26.11.2007 21:11:59 von dnoeth
Mario Ramseier wrote:
> userid visitoruserid datetime
> 2 3 2007-11-26 17:29:06
> 2 1 2007-11-26 13:45:06
> 2 1 2007-11-25 14:02:43
> 2 10 2007-11-25 14:02:17
> 2 1 2007-11-25 14:02:10
>
> Wenn ich nun folgende Query anwende "SELECT DISTINCT (`visitoruserid` ) FROM
> user_profilevisit WHERE userid =2 ORDER BY datetime DESC" ist dass Ergebnis:
> 3, 10, 1
> Ziel wäre aber 3, 1, 10
Nimm Group by statt Distinct:
SELECT visitoruserid
FROM user_profilevisit
WHERE userid =2
group by visitoruserid
ORDER BY max(datetime) DESC
Dieter
Re: Ausgabe von Distinct umsortieren
am 26.11.2007 21:51:46 von Mario Ramseier
"Dieter Noeth" schrieb:
> Nimm Group by statt Distinct:
> SELECT visitoruserid
> FROM user_profilevisit
> WHERE userid =2
> group by visitoruserid
> ORDER BY max(datetime) DESC
Hallo zusammen
Herzlichen Dank für den Input, die Version von Sebastian führt ans Ziel.
@Dieter, bekomme leider ein "Invalid use of group function". (MySQL 4.1.21)
Grüsse
Re: Ausgabe von Distinct umsortieren
am 27.11.2007 08:05:05 von Sebastian Suchanek
Mario Ramseier schrieb:
> [...]
> (MySQL 4.1.21)
Das solltest Du auch mal aktualisieren...
Tschüs,
Sebastian
Re: Ausgabe von Distinct umsortieren
am 27.11.2007 12:08:02 von Mario Ramseier
"Sebastian Suchanek" schrieb:
> > (MySQL 4.1.21)
> Das solltest Du auch mal aktualisieren...
Würd ich sicher tun, wenn ich denn könnte, mein Hoster verlangt schon nur
pro CronJob 50.-, für MySQL aktualisieren dürften es dann wohl einige 1000.-
sein :)
Grüsse