Envoyé par
naindjardin
Je ne sais pas comment générer une requêtes sql qui me permettrait par exemple de ne prendre que les photos de Noël 2012, ou encore les photos de "l'anniversaire d'Enriette Neven en 2011"
.
Le fait que les catégories soient organisées de façon hiérarchique n'a pas vraiment d'importance (dans les cas que tu mentionnes du moins)
Je suppose que tu as une table de ce type dans ta base :
1 2 3 4
| PHOTO_CATEGORIE
---------------
ID_PHOTO
ID_CATEGORIE |
Dans ce cas, pour chaque catégorie à la quelle les photos recherchées doivent appartenir, il faudrait rajouter une condition de ce type :
EXISTS (SELECT 1 FROM PHOTO_CATEGORIE WHERE ID_PHOTO = p.ID AND ID_CATEGORIE = 15)
(où "p" est l'alias de la table PHOTO dans la requête parente)
Si tu veux pouvoir sélectionner "les photos de la famille Dupont", c'est un peu plus compliqué... Peu de SGBD supportent nativement les requêtes hiérarchiques (Oracle, peut-être PostgreSQL, les versions récentes de SQL Server mais avec une approche bizarre...). Le plus simple, si tu as déjà tes catégories en mémoire, c'est de déterminer la liste des sous-catégories et d'utiliser une condition "IN" :
EXISTS (SELECT 1 FROM PHOTO_CATEGORIE WHERE ID_PHOTO = p.ID AND ID_CATEGORIE IN (12, 13, 14, 15))
Partager