Bonjour à tous,
Je travaille avec MySql et je n'arrive pas à trouver une optimisation à une requête qui devient beaucoup trop longue quand le nombre de données augmente.
J'ai 3 tables dans ma base de données :
1 - Documents
2 - Mots
3 - DocumentsMots
La table Documents regroupe tous mes documents et possède les champs idDoc et NomDoc.
La table Mots regroupe tous les mots qui servent à identifier mes documents et possède les champs IdMot et NomMot.
La table DocumentsMots fait le lien entre les deux tables précédentes et possède les champs fk_Documents et fk_Mots.
J'aimerai une requête qui répond à cette demande : "Je veux tous les mots des documents qui possèdent les mots X, Y."
Requête utilisée :
J'ai rajouté dans le fichier en pièce jointe un exemple d'utilisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 select fk_Mots from DocumentsMots where fk_Documents in ( select fk_Documents from DocumentsMots dm, Documents d, Mots m where d.IdDoc = dm.fk_documents and dm.fk_Mots = m.IdMot and m.NomMot in ('X', 'Y') group by fk_Documents ) group by fk_Mots
Je vous remercie par avance pour vos conseils.
Partager