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 :

Une requête sur 3 tables


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Une requête sur 3 tables
    Bonjour à tous,

    Soient les tables :

    genre_livre
    --------------
    id | genre
    1 | enfantine
    2 | fantastique
    3 | Thriller
    4 | Adulte

    ventes_livres
    -------------
    id | id_livre | montant
    1 | 1 | 22.10
    2 | 3 | 13.40

    livres
    -----
    id | nom | auteur | genre
    1 | Le petit âne | toto | 1
    2 | Alien | Dupond | 2
    3 | Ca | King | 3
    4 | XXX | Dorcel | 4

    Mon but est de créer un select qui propose les différents genres, mais uniquement ceux dont les livres ont réalisé des ventes.
    Dans mon exemple, le select devait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="genre">
    <option value="1">enfantine</option>
    <option value="3">thriller</option>
    </select>
    Ben je sèche...

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il faut utiliser l'opérateur EXISTS, c'est d'ailleurs une simple reformulation de votre besoin.

    Vous cherchez tous les genres dont il existe au moins un livre ayant eu une vente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT id, genre
      FROM genre_livre gl
     WHERE EXISTS (SELECT null
                     FROM livres lv
                          INNER JOIN ventes_livres vl
                            ON vl.id_livre = lv.id
                    WHERE lv.genre = gl.id);

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Et bien merci beaucoup, c'est impeccable.
    Et ça va m'être très utile.

    Bonne fin de journée.

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

Discussions similaires

  1. Aide pour une requête sur deux tables
    Par Andry dans le forum Développement
    Réponses: 2
    Dernier message: 05/11/2007, 07h14
  2. [SQL] Une requête sur 2 tables
    Par jf63000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/10/2007, 12h50
  3. Une requête sur trois tables
    Par momoG dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/08/2007, 17h00
  4. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  5. faire une requête sur plusieurs tables
    Par julien.63 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 16/08/2006, 22h58

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