Pages

Problème de conception d'une requête sujet

vendredi 31 janvier 2014




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:


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 )


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 ;)




Aucun commentaire:

Enregistrer un commentaire