Pour la version courte de cette question, je veux accomplir quelque chose dans la ligne de ce qui est visible sur la page d'accueil Flickr. Il montre les trois dernières photos de chaque de vos amis triés par date mais groupés par ami.SQL Dernières photos de contacts (groupés par contact)
Voici une explication plus longue: Par exemple, j'ai 3 amis: John, George et Andrea. La liste que je veux extraire devrait ressembler à ceci:
George
- photo - 2010-05-18
- photo - 2010-05-18
- photo - 2010-05-12
John
- photo - 2010-05-17
- photo - 2010-05-14
- photo - 2010-05-12
Andrea
- photo - 2010-05-15
- photo - 2010-05-15
- Photo - 2010-05-15
Ami avec la photo la plus récente importée est en haut bu t ses 2 fichiers suivants suivent.
J'aimerais faire de MySQL, et pour le moment je suis arrivé ici:
SELECT photos.user_id, photos.id, photos.date_uploaded
FROM photos
WHERE photos.user_id IN (SELECT user2_id
FROM user_relations
WHERE user1_id = 8)
ORDER BY date_uploaded DESC
Où user1_id = 8
est l'utilisateur actuellement connecté et user2_id
sont les IDs d'amis. Cette requête retourne en effet les derniers fichiers téléchargés par les contacts de l'utilisateur avec id = 8 triés par date. Cependant, j'aimerais accomplir le groupement et la limitation mentionnés ci-dessus.
Espérons que cela a du sens. Merci d'avance.
Est-ce acceptable si au lieu de trois rangées par ami vous obtenez trois colonnes par ami, chaque colonne contient une photo? –
Pas vraiment. Parliez-vous de GROUP_CONCAT? – janosrusiczki
Non, mais je pense qu'il est possible d'avoir une ligne comme 'userid: 1, photo1_id: 200, photo1_date: 2009-10-01, photo2_id: 167, photo2_date: 2009-08-01, photo3_id: 120, photo3_date: 2009 -06-01'. Rangées similaires pour chaque ami. –