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