Je suis en train de construire un album photo personnalisé mais maintenant je suis coincé avec une requête mysql. L'idée de la requête est d'extraire une liste d'albums, de compter le nombre d'images qu'elle contient et d'extraire une vignette par album.Comment sélectionner les album photos, compter les photos et sélectionner une photo par album?
La base de données se compose maintenant de deux tables, l'une contenant les données de l'album et l'autre contenant les images (je les stocke dans la base de données).
Tableau: Photoalbums
id | album_name | album_created
-------------------------------------
1 | testalbum | 2010-11-07 19:33:20
2 | some more | 2010-11-15 18:48:29
Tableau: images
id | file | thumbnail | name | album_id
------------------------------------------
1 | binary | binary | test1 | 1
2 | binary | binary | test2 | 1
3 | binary | binary | test3 | 2
4 | binary | binary | test4 | 2
5 | binary | binary | test5 | 1
Ma requête actuelle ressemble à cela, mais clairement ne fonctionne pas.
SELECT alb.id album_id, alb.album_name, alb.album_created, COUNT(p.id) pcount FROM photoalbums alb LEFT JOIN pictures p ON p.album_id=alb.id GROUP BY p.album_id ORDER BY alb.album_name ASC
Tout d'abord, cette requête allait chercher toutes les vignettes dans l'album, et je ne veux qu'une seule (en avant-première). Ensuite, il semble s'arrêter à un album et je pense que c'est la déclaration GROUP BY qui en est la cause. Ai-je besoin d'effectuer une requête supplémentaire pour chaque album dans la boucle while() pour aller chercher une seule vignette par album, ou puis-je le faire avec une seule requête? Et quelle est l'erreur provoquant l'apparition d'un seul album dans le jeu d'enregistrements?
Merci d'avance!
Merci, ceci est la solution à ma question! – carlo