Hallo,
ich stehe grad vor einem kleinen Problem, bei dem ich entweder keine Lösung sehe, oder eben diese vor lauter Bäume nicht mehr.
Es geht dabei um die Anzeige der letzten 6 hochgeladenen Bilder von unterschiedlichen Benutzern zu unterschiedlichen Zeiten. Dazu habe ich eine Tabelle mit den Feldern:
- media_id (auto_increment)
- album_id (weil die Bilder in Alben einsortiert werden können)
- user_id (wie es der Name schon sagt)
- media_time (Upload-Zeitstempel)
Bei dem Ergebnis sollen die User nur einmal angezeigt werden. Wenn also user Y gestern ein Bild hochgeladen hat, und User X heut 10 neue Bilder, dann soll X einmal an erster stelle stehen, und Y einmal an zweiter Stelle und so weiter.
Mein bisheriger versuch, die Rows nach user_id zu Gruppieren und nach media_time zu sortieren schlägt fehl, da bei der Gruppierung das erste Vorkommen von Relevanz ist.
D.h. wenn nach mir 6 Andere ein neues Bild hochladen, rutsch ich wegen der Limitierung hinten raus. Lad ich danach eins hoch, steh ich trotzdem nicht mit drin weil der erste gefundene Eintrag mit meiner UserID einen Zeitstempel von Anno weißdergeierwann hat.
Die Query dazu sieht momentan wiefolgt aus:
Wenn Ihr irgendeine Idee habt wie ich das Lösen kann, ohne dabei X zusätzliche Queries haben zu müssen, immer her damit
Die Statusbits (is_profile, etc) sowie die Verknüpfungen zwischen den Tabellen können in Beispielen vernachlässigt werden. Wichtig ist mir nur die passende Query der letzten 6 Bilder von 6 unterschiedlichen Benutzern.
Vielen Dank & Gruß,
TT
ich stehe grad vor einem kleinen Problem, bei dem ich entweder keine Lösung sehe, oder eben diese vor lauter Bäume nicht mehr.
Es geht dabei um die Anzeige der letzten 6 hochgeladenen Bilder von unterschiedlichen Benutzern zu unterschiedlichen Zeiten. Dazu habe ich eine Tabelle mit den Feldern:
- media_id (auto_increment)
- album_id (weil die Bilder in Alben einsortiert werden können)
- user_id (wie es der Name schon sagt)
- media_time (Upload-Zeitstempel)
Bei dem Ergebnis sollen die User nur einmal angezeigt werden. Wenn also user Y gestern ein Bild hochgeladen hat, und User X heut 10 neue Bilder, dann soll X einmal an erster stelle stehen, und Y einmal an zweiter Stelle und so weiter.
Mein bisheriger versuch, die Rows nach user_id zu Gruppieren und nach media_time zu sortieren schlägt fehl, da bei der Gruppierung das erste Vorkommen von Relevanz ist.
D.h. wenn nach mir 6 Andere ein neues Bild hochladen, rutsch ich wegen der Limitierung hinten raus. Lad ich danach eins hoch, steh ich trotzdem nicht mit drin weil der erste gefundene Eintrag mit meiner UserID einen Zeitstempel von Anno weißdergeierwann hat.
Die Query dazu sieht momentan wiefolgt aus:
PHP:
SELECT a.media_file, u.user_id, u.user_name FROM user_album_files a
LEFT JOIN user_album_folders f ON (a.album_id = f.id)
LEFT JOIN user_table u ON (a.user_id = u.user_id)
WHERE f.album_viewtype = 0
AND a.is_profile = 0
AND a.is_image = 1
GROUP BY a.user_id
ORDER BY a.media_time DESC LIMIT 6
Wenn Ihr irgendeine Idee habt wie ich das Lösen kann, ohne dabei X zusätzliche Queries haben zu müssen, immer her damit
Die Statusbits (is_profile, etc) sowie die Verknüpfungen zwischen den Tabellen können in Beispielen vernachlässigt werden. Wichtig ist mir nur die passende Query der letzten 6 Bilder von 6 unterschiedlichen Benutzern.
Vielen Dank & Gruß,
TT