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 :

Jointures et cookies


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 28
    Points : 17
    Points
    17
    Par défaut Jointures et cookies
    Bonjour,

    Admettons, en faisant simple que j'ai une table entreprise qui contient des noms de la grande distribution avec pour champs id et nom,
    puis une table magasin qui liste les magasins des différents entreprises avec pour champs id, entreprise_id, nom,
    puis une table produit qui liste les produits des différents magasins avec pour champs id, magasin_id, nom.

    Une entreprise peut avoir un ou des magasins, et un magasin un ou des produits.

    Maintenant, parmi les produits, on peut avoir le produit ayant pour nom "cookies".

    Je souhaiterai avoir pour information la liste des entreprises :
    - n'ayant que des cookies dans leur(s) magasin(s) et aucun autre produit.
    - ayant au moins une fois le produit cookies dans leur(s) magasin(s).

    J'aurai besoin de 2 requêtes séparées pour chacun des 2 cas de figures.

    Si quelqu'un à une idée ? Ça serait sympa

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    -- les entreprises qui ont des cookies
       select EN.NOM
       from  ENTREPRISE   as EN
       where exists
            (select 1
             from MAGASIN as MG
             inner join PRODUIT as PR
                on PR.MG_id = MG.MG_id
             where MG.EN_id = EN.EN_id
               and lower(PR.PR_NOM)='cookies')
    -- les entreprises qui n'ont que des cookies : ajouter ce qui suit
         and not exists
            (select 1
             from MAGASIN as MG
             inner join PRODUIT as PR
                on PR.MG_id = MG.MG_id
             where MG.EN_id = EN.EN_id
               and lower(PR.PR_NOM)<>'cookies'

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Super, ça marche parfaitement.
    Je te remercie escartefigue.

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

Discussions similaires

  1. Les Cookies 4° ! : LA SOLUTION
    Par Ph. B. dans le forum XMLRAD
    Réponses: 2
    Dernier message: 31/01/2003, 16h46
  2. Les cookies 3° !!!
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 28/01/2003, 18h13
  3. [XMLRAD] Cookies pour login
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 9
    Dernier message: 23/12/2002, 17h47
  4. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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