IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

requete / relation many-to-many


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut requete / relation many-to-many
    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) :
    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;
    mais ça m'a l'air lourd, je voudrais savoir s'il n'y a pas quelque chose de plus "élégant" ^^'

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    oeuvre_has_motclef est la bonne solution.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT motclef.libelle, oeuvre.titre
    FROM motclef
    JOIN oeuvre_has_motclef ON oeuvre_has_motclef.idoeuvre = oeuvre.idoeuvre
    JOIN mot_clef ON mot_clef.idmotclef = oeuvre_has_motclef.idmotclef
    WHERE oeuvre.idChapitre = 1;
    ne ferait pas l'affaire ?
    Roland

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    je vais tester les jointures, c'est une bonne idée

    merci pour les réponses (:

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PGSQL-EclipseLink Relation One To Many et Many To One
    Par faitor1 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/01/2015, 19h46
  2. Réponses: 3
    Dernier message: 05/04/2010, 14h42
  3. requete sur map-key-many-to-many
    Par audklie2 dans le forum Hibernate
    Réponses: 2
    Dernier message: 20/11/2009, 17h48
  4. Requete SQL entre 2 tables liés par une relation many to many
    Par macmanaman dans le forum Langage SQL
    Réponses: 8
    Dernier message: 06/05/2009, 16h37
  5. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo