Moteur de recherche par tags avec table relationelle
Bonjour,
Je dois résoudre un probleme qui me semble assez difficile :roll:
Je dois créer une requete SQL pour un moteur de recherche par tags.
J'ai 3 tables : article, tag, relation. la table relation est composé juste de article.id et tag.id.
J'aimerais pouvoir rechercher les articles correspondent à plusieurs tags via l'id de ces tags.
Par exemple un article numéro 1 est relié aux tags : chat et chien
et un autre numéro 2 aux tags : chat et poisson.
Si je recherche chat chien je ne dois trouver que l'article numéro 1 et non pas le 2 vu qu'il n'est associé qu'a chat et pas chien.
Voici ma requete :
Code:
1 2 3 4 5 6 7 8 9 10
| SELECT DISTINCT
f, articles.id, price,url
FROM articles
INNER JOIN relationships
ON relationships.article_id = articles.id
INNER JOIN tags
ON tags.id = relationships.tag_id
WHERE articles.st = 0
AND relationships.tag_id IN (1191, 163)
LIMIT 100 |
1191 et 163 correspond aux ids des tags inclu dans ma recherche, cette requete marche mais retourne les articles qui ont pour tags 1191 OU 163 et j'aimerais qu'il ne retourne que les articles qui ont pour tags 1191 ET 163 ...
Merci de votre aide