Ausgabe von Distinct umsortieren

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
Mario Ramseier [ Mo, 26 November 2007 20:18 ] [ ID #1878923 ]

Re: Ausgabe von Distinct umsortieren

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
Sebastian Suchanek [ Mo, 26 November 2007 21:07 ] [ ID #1878924 ]

Re: Ausgabe von Distinct umsortieren

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
dnoeth [ Mo, 26 November 2007 21:11 ] [ ID #1878925 ]

Re: Ausgabe von Distinct umsortieren

"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.

[at] Dieter, bekomme leider ein "Invalid use of group function". (MySQL 4.1.21)

Grüsse
Mario Ramseier [ Mo, 26 November 2007 21:51 ] [ ID #1878926 ]

Re: Ausgabe von Distinct umsortieren

Mario Ramseier schrieb:
> [...]
> (MySQL 4.1.21)

Das solltest Du auch mal aktualisieren...


Tschüs,

Sebastian
Sebastian Suchanek [ Di, 27 November 2007 08:05 ] [ ID #1879766 ]

Re: Ausgabe von Distinct umsortieren

"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
Mario Ramseier [ Di, 27 November 2007 12:08 ] [ ID #1879770 ]
Datenbanken » de.comp.datenbanken.mysql » Ausgabe von Distinct umsortieren

Vorheriges Thema: DATE_SUB
Nächstes Thema: Zeichencodierung für portugiesisch