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

PL/SQL Oracle Discussion :

pb avec not exists


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut pb avec not exists
    Bjrs,

    Je veux faire une selection de données qui existent dans une table A mais pas dans la table B.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT DISTINCT 
            chp1, 
            chp2,
            chp3
            FROM TABLE_A b 
            WHERE 
           not exists( 
                            SELECT chp1, 
            chp2,
            chp3
    from TABLE_B);
    Je précise que TABLE_A et TABLE_B contiennent d'autres colonnes qui ne sont pas les memes entre les deux tables.
    ma req me retourne rien, malgres qu'il y a des données dans la TABLE_A mais non dans B.

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Par défaut minus
    Ta requete ne donne rien c bien normal car la clause where est toujours interpretée a false.
    ce qui tu dois faire c faire une faire c utiliser "minus"
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    SELECT DISTINCT  chp1, chp2, chp3
            FROM TABLE_A 
     minus 
     SELECT chp1, chp2,    chp3
             FROM TABLE_B

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut
    Bonjour,
    1. au niveau de la SELECT imbriquée tu peux mettre "Select 1 ..."
    2. en plus, il te manque la jointure entre les deux tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT chp1, chp2, chp3
            FROM TABLE_A b 
            WHERE NOT EXISTS(SELECT 1 FROM TABLE_B 
    WHERE b.Col_Pk = TABLE_B.Col_Pk);

  4. #4
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Bonjour,

    Je pense que ça devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT 
            chp1, 
            chp2,
            chp3
            FROM TABLE_A a 
            WHERE 
           NOT EXISTS( SELECT 1
         FROM TABLE_B b
         where a.chp1 = b.chp1
         and a.chp2 = b.chp2
         and a.chp3 = b.chp3);
    Sylvain

    EDIT : dommage la même réponse a été postée plus rapidement ...

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut
    Citation Envoyé par iSylvain Voir le message
    Bonjour,

    Je pense que ça devrait fonctionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT 
            chp1, 
            chp2,
            chp3
            FROM TABLE_A a 
            WHERE 
           NOT EXISTS( SELECT 1
         FROM TABLE_B b
         where a.chp1 = b.chp1
         and a.chp2 = b.chp2
         and a.chp3 = b.chp3);
    Sylvain

    EDIT : dommage la même réponse a été postée plus rapidement ...
    ATTENTION: n'utiliser pour la jointure que les colonnes qui font partie de la clé primaire. C pas nécessairement les colonnes de la SELECT.

  6. #6
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    ATTENTION: n'utiliser pour la jointure que les colonnes qui font partie de la clé primaire. C pas nécessairement les colonnes de la SELECT.
    Tout à fait. Merci de la précision.

    Sylvain

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut
    Merci pr vos reponses,

    J'ai essayé avec Minus => j'ai bien le résultat attendu
    Mais qd j'utilise Select 1... => j'ai rien comme résultat. Je précise que je n'ai pas de PK dans les 2 tables.

    Pourriez-vous m'expliquer pourquoi?
    Merci

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut
    t'as aucune relation entre les 2 tables?????

Discussions similaires

  1. Problème pour la Division avec NOT EXISTS
    Par myzu69 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/11/2007, 14h50
  2. sql requête avec NOT EXISTS
    Par wang_xue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/10/2007, 19h48
  3. Requête avec NOT EXISTS
    Par lodan dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/07/2007, 10h16
  4. [SQL Server] Probleme avec not exists
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2006, 16h51
  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