Bonjour tout le monde,
j'aurais besoin de vous pour m'aider à réaliser une requête. Je vous explique:
J'ai 2 tables (pour une application PHP, utilisant SQL):
- "albums_list" avec une colonne "album_id" qui sert à identifier l'id d'un album et une colonne "album_date" qui contient la date de validation de l'album
- "photos_list" avec une colonne "ph_id" qui sert à identifier l'id de la photo et une colonne "ph_album_id" qui sert à identifier l'id de l'album auquel la photo appartient.
Sur ma page d'accueil, je récupère les 4 derniers albums validés, ainsi que la première photo de l'album correspondant.
Ma requête se présente donc sous cette forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT a.album_id, ph.ph_id FROM albums_list AS a LEFT JOIN photos_list AS ph ON ph.ph_id=(SELECT ph_id FROM photos_list WHERE ph_album_id=a.album_id LIMIT 0, 1) ORDER BY a.album_date DESC LIMIT 0, 4
Tout ceci fonctionne très bien, pas de problème jusqu'ici.
Maintenant, j'aimerais modifier cette requête afin de récupérer non pas la première photo de l'album, mais bien une photo aléatoire de l'album.
J'ai bien essayé d'ajouter un "ORDER BY RAND() LIMIT 0, 1" dans la sous-requête, mais cela ne fonctionne pas.
J'en viens donc à vous: comment réaliser cette requête?
Merci d'avance, et bonne journée.
Partager