LorysC
Messages postés9Date d'inscriptionvendredi 9 juillet 2010StatutMembreDernière intervention13 juillet 2010 9 juil. 2010 à 14:36
Alors mon but : par exemple c'est d'afficher les photo_id avec tags_id = 3 ET (pas ou) 4, mais que si je souhaite afficher les photo_id ou les tags_id sont 2 ET 4 ET 6, dans ce cas la par rapport à mon jeux d'enregistrement cela ne devrait retourner aucun resultat...
Jeux :
photo_id tags_id
6 2
6 6
9 1
9 3
9 4
9 5
Exemple 1 :
SELECT * FROM `photo_tags_table` where tags_id in ('3','4','6')
Ne doit rien retourner
Exemple 2 :
SELECT * FROM `photo_tags_table` where tags_id in ('3','4')
Doit rien retourner photo_id = 9
Exemple 3 :
SELECT * FROM `photo_tags_table` where tags_id in ('2','6')
Doit rien retourner photo_id = 6
Exemple 4 :
SELECT * FROM `photo_tags_table` where tags_id in ('6','1')
Ne doit rien retourner
LorysC
Messages postés9Date d'inscriptionvendredi 9 juillet 2010StatutMembreDernière intervention13 juillet 2010 9 juil. 2010 à 15:27
pour information j'ai utiliser le subterfuge suivant
SELECT photo_id, count( tags_id ) AS mycount
FROM `photo_tags_table`
WHERE tags_id =3
OR tags_id =4
GROUP BY photo_id
HAVING mycount =2
le having prend obligatoirement le nombre de "tags_id" passé en argument du coup le resultat contient forcement le photo_id qui remplis toutes les clauses ... mais c'est tiré par les cheveux, si quelqu'un a mieux
julsac
Messages postés6Date d'inscriptionmardi 17 février 2009StatutMembreDernière intervention13 juillet 2010 13 juil. 2010 à 13:31
Essai ça je pense que c'est ce que tu veux du coup :
select p1.photo_id, p1.tags_id,p2.tags_id
from photo_tags_table p1, photo_tags_table p2
where p1.tags_id = 3
and p2.tags_id = 4
and p2.photo_id = p1.photo_id
Normalement ca ne devrait t'afficher un résultat que si ça correspond à ces 3 critères. Je sais pas si c'est ce que tu souhaite.
LorysC
Messages postés9Date d'inscriptionvendredi 9 juillet 2010StatutMembreDernière intervention13 juillet 2010 13 juil. 2010 à 16:56
Ca fonctionne en effet, je vais m'inspirer de ca pour en faire une requete dynamique, puis que le nombre de tags_id peut varié (case a cocher dans une formulaire)