Je construis une application de prise de notes avec des fonctions de filtrage de balises, mais je rencontre un problème lorsque j'essaie de saisir des notes avec les balises. Le filtre de balise doit utiliser AND non IN, car il aidera à affiner ce que je cherche.Problème MySQL LEFT JOIN avec trois instructions WHERE
Mes tableaux sont configurés comme ceci:
+ notes note_id | note_title | note_uid
+ tags tag_id | tag_title
+ notes_tags nt_id | nt_note_id | nt_tag_id
La table notes_tags conserve la trace des balises de toutes les notes.
Je ne suis pas inquiet de retourner des informations sur les balises, alors voici un exemple LEFT JOIN J'utilise actuellement pour obtenir seulement des notes avec seulement 1 étiquette.
SELECT * FROM notes_tags LEFT JOIN Notes sur note_id = nt_note_id OÙ note_uid IN (1) ET nt_tag_id = 10
Cette requête fonctionne parfaitement, il saisit toutes les notes avec cette balise unique . Cependant, j'ai des problèmes "localisant" mes notes à l'aide d'une requête comme ceci:
SELECT * FROM notes_tags LEFT JOIN Notes sur note_id = nt_note_id OÙ note_uid IN (1) ET nt_tag_id = 10 ET nt_tag_id = 11
Qu'est-ce que je fais de mal avec la syntaxe?
Vous essayez d'obtenir des notes qui se trouvent dans les étiquettes 10 et 11, je suppose? Vous ne pouvez pas le faire avec juste un ET, jetez un oeil à cette question similaire d'hier: http://stackoverflow.com/questions/2581067/mysql-experts-need-help-with-intersect/2581145#2581145 –