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 :

Requête de selection sur table many to many


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 23
    Points : 22
    Points
    22
    Par défaut Requête de selection sur table many to many
    Bonjour,

    Je cherche à faire une requête mais je ne vois pas comment procéder. Explication :

    Je dispose de la table suivante (c'est un exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    - table
       * voiture
       * equipement
    Je dispose des insertions suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ('Clio', 'Climatisation');
    ('Clio', 'GPS');
    ('Clio', 'Lecteur CD');
    ('206', 'Climatisation');
    ('206', 'Lecteur CD');
    Je souhaite élaborer une requête qui me permet de récupérer les voitures qui disposent des équipements spécifiés. Exemple : je veux les voitures qui ont un lecteur cd ET la climatisation.

    J'ai essayé ceci sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
    FROM table 
    GROUP BY voiture 
    HAVING equipement = 'Lecteur CD' 
     AND equipement = 'Climatisation';
    Pouvez vous m'éclairer svp?

    Merci

  2. #2
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table GROUP BY voiture HAVING equipement = 'Lecteur CD' AND equipement = 'Climatisation';
    Vous ne pouvez pas avoir une même ligne qui contienne deux équipements !


    En appelant la table tbEquipement, ceci devrait aller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT voiture FROM tbEquipement  
    WHERE equipement = 'Lecteur CD' OR equipement = 'Climatisation'
    GROUP BY voiture
    HAVING count(*) = 2
    @+

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 390
    Points
    28 390
    Par défaut
    La clause HAVING porte sur le résultat du regroupement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT voiture
    FROM table 
    WHERE equipement IN ('Lecteur CD', 'Climatisation')
    GROUP BY voiture 
     HAVING COUNT(*) = 2;

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Super !

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2013, 21h23
  2. Réponses: 9
    Dernier message: 20/08/2012, 22h44
  3. requête de selection sur VBA?
    Par jessy212 dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 28/08/2006, 10h58
  4. [Hibernate][Tomcat] Select sur tables
    Par parasol007 dans le forum Tomcat et TomEE
    Réponses: 15
    Dernier message: 12/05/2006, 14h01
  5. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38

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