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

Requêtes MySQL Discussion :

Comment faire fonctionner une requête avec NOT EXISTS


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Comment faire fonctionner une requête avec NOT EXISTS
    Bonjour,

    Suite à un précédent post où j'avais demandé comment avoir le contraire du résultat d'une requête, on m'a conseillé d'utiliser la fonction NOT EXISTS.

    J'ai donc la requête suivante qui me donne 127 enregistrements sur les 153 :

    SELECT *
    FROM akf, akf_ad
    WHERE SUBSTR( akf_login, 1, 1 ) = SUBSTR( akf_ad_prenom, 1, 1 )
    AND akf_ad_nom = SUBSTR( akf_login, 2 )
    J'aimerai avoir les 26 enregistrements restant à partir d'une autre requête. J'ai donc réalisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT *
     FROM akf
    WHERE  EXISTS(
                 SELECT *
                 FROM akf, akf_ad
                 WHERE SUBSTR( akf_login, 1, 1 ) = SUBSTR( akf_ad_prenom, 1, 1 )
                 AND akf_ad_nom = SUBSTR( akf_login, 2 )
                 )
    ORDER BY akf_login ASC
    Le problème est que cette requête me retourne 0 enregistrement...

    Auriez vous une idée de mon problème ?

    P.S :

    Exemple de mes tables :

    exemple de table :

    Table akf :
    akf_id (exemple : 1)
    akf_login (exemple : JDUPOND)

    Table akf_ad :
    akf_ad_id (exemple : 35)
    akf_ad_nom (exemple : DUPOND)
    akf_ad_prenom (exemple : JEAN)

    Notes : Il ne peux et il n'y a AUCUN doublons dans les tables

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Ah, si tu écrivais les jointures avec la synthaxe correcte du SQL2 (inner join ... on ...), ça serait beaucoup plus simple .
    Ta première requête devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM akf
    INNER JOIN akf_ad on SUBSTR( akf_login, 1, 1 ) = SUBSTR( akf_ad_prenom, 1, 1 )
    AND akf_ad_nom = SUBSTR( akf_login, 2 )
    et la requête que tu cherches devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM akf
    LEFT JOIN akf_ad on SUBSTR( akf_login, 1, 1 ) = SUBSTR( akf_ad_prenom, 1, 1 )
    AND akf_ad_nom = SUBSTR( akf_login, 2 )
    where akf_ad_id IS NULL
    Essaie de te familiariser à cette synthaxe, ça facilite considérablement les requêtes...

    ced

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Merci, ca fonctionne correctement.

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

Discussions similaires

  1. [XL-2010] Faire fonctionner une requête qui lit une base Access 2010 avec mot de passe
    Par mister red dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2015, 17h39
  2. Comment faire fonctionner une GUI form?
    Par DragonLebna dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 22/04/2007, 14h58
  3. Comment faire fonctionner une fenêtre Login
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 3
    Dernier message: 29/10/2006, 13h00
  4. Comment faire fonctionner une scroll bar ???
    Par toto4650 dans le forum MFC
    Réponses: 10
    Dernier message: 18/07/2005, 17h47
  5. Requète avec NOT EXISTS
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 23/09/2003, 16h20

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