bonjour (:
j'essaie vainement de faire une requête sql sur des tables qui ont une relation many-to-many...
il y a une table Oeuvre, une table MotClef, une oeuvre pouvant avoir plusieurs mot clefs et un mot clef pouvant être rattaché à plusieurs oeuvres
et donc au milieu il y a une table oeuvre_has_motclef qui contient un idOeuvre et un idMotClef
et je voudrais faire une requete pour récupérer toutes les oeuvres ayant une propriété à une certaine valeur ou ayant le même motclef.
J'ai un peu cherché, mais j'ai vraiment du mal à voir à quoi ça pourrait ressembler.
Est-ce que dans ma requête je peux faire un lien direct entre les 2 tables principales (oeuvre et motclef) ou est-ce que je dois passer par la table oeuvre_has_motclef ?
J'avais fait un essai en passant par la table de relation oeuvre_has_motclef (le but était de récupérer toutes les oeuvres du chapitre 1 et leurs mots clefs) :
mais ça m'a l'air lourd, je voudrais savoir s'il n'y a pas quelque chose de plus "élégant" ^^'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT motclef.libelle, oeuvre.titre FROM motclef, oeuvre WHERE motclef.idMotClef IN (SELECT oeuvre_has_motclef.idMotClef FROM oeuvre_has_motclef WHERE oeuvre_has_motclef.idOeuvre IN (SELECT oeuvre.idOeuvre FROM oeuvre WHERE oeuvre.idChapitre = 1)) AND oeuvre.idChapitre = 1;
Partager