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 :

sql requête avec NOT EXISTS


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut sql requête avec NOT EXISTS
    Les identifiants des personnes qui possèdent un permis pour toutes les catégories de véhicules (la table CATEGORIES contient au moins un permis pour chaque catégorie) (SQL).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    s e l e c t i d P e r s
    from PERMIS P
    where not e x i s t s ( s e l e c t *
                                  from CATEGORIES A
                                  where not e x i s t s ( s e l e c t * 
                                                                from CATEGORIES B
                                                                where P . idPerm = B. idPerm
                                                                and B. catVeh = A. catVeh ) )

    qui peut m'expliquer cette requête,je ne comprend pas pourquoi on utilise deux fois (not exists).

    la clause where P . idPerm = B. idPerm and B. catVeh = A. catVeh,je ne comprend pas cette clause.

    Pb n°2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    s e l e c t i d P e r s
    from CARTEGRISES
    where not e x i s t s ( s e l e c t * from CATEGORIES, PERMIS
    where CATEGORIES . idPerm = PERMIS . idPerm
    and CARTEGRISES . i d P e r s = PERMIS . i d P e r s
    and CARTEGRISES . catVeh = CATEGORIES . catVeh )
    je n'ai pas compris cette clause??

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 089
    Points : 31 345
    Points
    31 345
    Billets dans le blog
    16
    Par défaut Erreur de forum
    Vous n'êtes pas sur le bon forum :

    il faut poster sur le forum SQL. Et là, les gens se feront un plaisir de vous expliquer par exemple que votre 1er problème traite de la division relationnelle.

    Mais écrivez vos requêtes de façon claire, sinon personne ne répondra...

    Un indice : pour paraphraser "Tous les hommes sont mortels", on peut écrire "Il n'existe pas d'homme qui ne soit pas mortel", d'où le double Not Exists (SQL ne connaît pas le quantificateur universel).

    Bonne chance.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Citation Envoyé par wang_xue
    pourquoi on utilise deux fois (not exists).
    C'est 1 façon de faire 1 division relationnelle en SQL.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Un indice : pour paraphraser "Tous les hommes sont mortels", on peut écrire "Il n'existe pas d'homme qui ne soit pas mortel",
    merci je comprend.

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

Discussions similaires

  1. Requête avec not exist
    Par moimoi78 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/05/2012, 17h47
  2. Comment faire fonctionner une requête avec NOT EXISTS
    Par arnaudperfect dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/11/2007, 10h39
  3. Requête avec NOT EXISTS
    Par lodan dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/07/2007, 10h16
  4. Requête SQL ( relation does not exist)
    Par norvel dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/10/2005, 17h29
  5. Requète avec NOT EXISTS
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 15h20

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