Bonjour.
Premier post sur un forum après plusieurs tentatives de recherches infructueuses mais surement maladroites donc milles excuses si la questions a déjà été posée.
Voici ma situation :
J'ai deux tables avec une relation n:n
table notes : id, note
table mots_clefs : id, mot
que j'ai reliées par une troisième table dite "de jointure" si j'en crois mes récentes lectures en la matière :
table jointures : id_note, id_clef
Je les ai remplies par exemple comme suit :
table notes :
id note
1 déposer des chèques à la banque
2 payer les impôts avec le sourire
3 payer les impôts avec un chèque
table mots_clefs :
id mot
1 impôts
2 chèque
table jointures :
id_note id_clef
1 2
2 1
3 1
3 2
Et voici donc mon problème :
Je ne parviens pas à trouver la syntaxe d'une requête SQL qui me permettrais de sélectionner "id_note" où "id_clef" = 1 et 2. Un simple " SELECT id_note FROM jointures WHERE id_clef=1 AND id_clef=2 " ne me renvoie bien sur rien.
En clair je voudrais balancer un série de mots clefs et j'aimerais que MySQL me renvoie la ou les notes qui y sont associées.
J'avais pensé à faire quelque chose du genre
SELECT id_note FROM jointure WHERE id_clef=1 OR id_clef=2 en faisant un COUNT(id_note) quelquepart puis de sélectionner les résultats où le COUNT(id_note) = nombre de mots clefs envoyés (vous l'aurez compris, je débute en SQL).
En trifouillant un peu je suis sur que ça finirait par marcher, mais sur le plan conceptuel ça ne me plait vraiment pas.
Je tourne en rond.
Il doit bien y avoir une solution plus élégante à mon problème.
Avis aux amateurs...
En espérant avoir été assez clair,
Merci d'avance.