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 :

[MySQL] Sous requête EXISTS


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de Legenyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 174
    Points : 207
    Points
    207
    Par défaut [MySQL] Sous requête EXISTS
    [H1]Bonjour tous le monde[/H1]
    Je suis ette semaine coincé sur un probleme de requète SQL.

    J'ai deux tables de même structure avec coàmmme clé primaire l'id.
    Je devrais réaliser une requte me permétant de trouver tout les enregistrelent qui sont dans la deuxième table mais non présent dans la première.
    (Par exemple la table n°2 devrais me renvoyer tous les id des enregistrement présent dans la talbe 2 et non présent dasn la table 1)

    En rechant un peu j'ai trouver qu'il existait des sous-requetes tel que EXISTS. Mais je ne sais pas comment les utliser.
    Voici un exemple de se que j'ai trouver.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT SUM(CHB_COUCHAGE) AS TOTAL_COUCHAGE
    FROM   T_CHAMBRE
    WHERE  EXISTS (SELECT *
                   FROM   T_CHAMBRE
                   WHERE  CHB_COUCHAGE >= 3)
    Merci d'avance aux personne qui m'éclairerons
    ++

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Il serait bon de savoir ce que tu cherches à faire avec cette requête, parce que là, elle sert à rien... soit il y a des chambres avec CHB_COUCHAGE >= 3 et toutes les chambres seront comptées, soit il n'y en a pas, et ça te renverra 0...

    ensuite, quel est ton SGBD ? et quelle est sa version ?

  3. #3
    Membre actif Avatar de Legenyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 174
    Points : 207
    Points
    207
    Par défaut
    Deja merci pour ta réponse.
    Mon SGDB est MySQL

    cette requete est un exemple trouver sur le cours de ce site, je dois l'adapter a mon cas et c'est ca que je ne vois pas comment faire.

    c'est a dire :
    (pour simplifier) disons que je veux trouver dans la table N°2 la liste des toutes les ID non présente dans la table N°1 ainsi que la valeur de tous les champs+

    est ce plus claire comme ca ?

  4. #4
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t2.id
    FROM table2 t2
    WHERE t2.id NOT IN (
       SELECT t1.id
       FROM table1 t1);
    Voilà chef !

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    +1 pour dbprog, cependant, quelle est la version de ton MySQL ?

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Normalement (je n'ai pas testé avec mySQL) : à condition que la colonne t1.id ne soit pas nullable...

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    EXISTS nécessite TOUJOURS une sous requête corrélée pour être sémantiquement logique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT SUM(CHB_COUCHAGE) AS TOTAL_COUCHAGE
    FROM   T_CHAMBRE AS T1
    WHERE  EXISTS (SELECT *
                   FROM   T_CHAMBRE AS T2
                   WHERE  CHB_COUCHAGE >= 3
                     AND  T1.CHB_ETAGE = T2.CHB_ETAGE) --> corrélation de T1/T2
    A +

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

Discussions similaires

  1. Comment désinstaller MySQL sous linux
    Par nahmsath dans le forum Installation
    Réponses: 5
    Dernier message: 18/09/2007, 11h46
  2. [MFC] [API mySQL] Sous requêtes
    Par Guybrush113 dans le forum MFC
    Réponses: 5
    Dernier message: 29/04/2004, 17h14
  3. Chemin d'accès de MySQL sous linux
    Par sylvain_neus dans le forum Installation
    Réponses: 6
    Dernier message: 17/03/2004, 11h39
  4. installation 'automatique' de mysql sous win9x ?
    Par greystock dans le forum Installation
    Réponses: 3
    Dernier message: 07/03/2004, 04h06
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 11h39

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