Bonjour,
Je dois résoudre un probleme qui me semble assez difficile
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 :
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 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci de votre aide
Partager