Bonjour à tous :ccool:
J'ai un peu de mal à réfléchir sur une requête certainement évidente pour certains ... ou pas. :mouarf:
Je vais faire au plus simple pour que ce soit clair ;)
J'ai une table "documents" avec id et nom du document, une table "keywords" avec id et nom du keyword et enfin, une table de liaison avec id_keywords et id_documents (relation de type n-n).
Donc, des documents peuvent avoir plusieurs mots-clés qui leur sont associés.
Je veux sortir tous les id des documents qui sont seulement reliés à 2 mots clés quelconques (id 10 et 14 pour la requête ci-dessous), j'ai réussi mais j'ai l'impression que ma requête risque d'être énorme si je rajoute d'autres mots-clés :aie:
On voit bien que la requête et sous-requête sont exactement les mêmes avec juste l'id du keyword qui change.
Y'a t-il moyen de faire plus simple ?
Merci de votre aide ;)
J'ai un peu de mal à réfléchir sur une requête certainement évidente pour certains ... ou pas. :mouarf:
Je vais faire au plus simple pour que ce soit clair ;)
J'ai une table "documents" avec id et nom du document, une table "keywords" avec id et nom du keyword et enfin, une table de liaison avec id_keywords et id_documents (relation de type n-n).
Donc, des documents peuvent avoir plusieurs mots-clés qui leur sont associés.
Je veux sortir tous les id des documents qui sont seulement reliés à 2 mots clés quelconques (id 10 et 14 pour la requête ci-dessous), j'ai réussi mais j'ai l'impression que ma requête risque d'être énorme si je rajoute d'autres mots-clés :aie:
Code:
SELECT DISTINCT doc.id
FROM __customer__.documents doc
JOIN __customer__.documents_keywords k ON doc.id = k.id_documents
WHERE doc.id = 2 AND k.id_keywords = 10 AND 2 = ( SELECT DISTINCT doc.id
FROM __customer__.documents doc
JOIN __customer__.documents_keywords k ON doc.id = k.id_documents
WHERE doc.id = 2 AND k.id_keywords = 14 )Y'a t-il moyen de faire plus simple ?
Merci de votre aide ;)
Aucun commentaire:
Enregistrer un commentaire