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 et SQL. Discussion :

Requête NOT IN


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 33
    Points
    33
    Par défaut Requête NOT IN
    Bonjour,

    Je suis en train de réaliser ma base de données sous ACCESS et j'ai un souci avec une requête.

    Pour vous situer un peu, ma requête a pour but d'établir une liste exhaustive et sans doublons des paramètres. Il existe deux types de paramètres: les paramètres des causes et les paramètres des effets.
    Une première requête DISTINCT permet de faire mes deux listes sans doublons et une seconde doit éliminer les paramètres qui sont à la fois dans les causes et les effets. J'utilise donc NOT IN. C'est ici qu'est mon problème. En effet, la requête ne fonctionne pas et je ne comprends pas pourquoi. Si je fais la requête inverse (IN), ça fonctionne.
    J’ai utilisé cette même méthode pour d’autres champs de ma table et je n’ai pas eu de souci.
    Autre chose qui n’a peut-être rien à voir mais quand je fais ma première requête, il me retourne dans ma liste un enregistrement vide, mais je suis certaine que mon champs ne comporte pas d’enregistrement avec seulement des espaces.

    Je pensais que c'était un bug de ACCESS donc j'ai fermé la base, recommencé les requêtes, j'ai testé dans une nouvelle base, mais ça ne fonctionne toujours pas.


    Je ne sais plus où chercher le problème… J’espère que j’ai été assez claire, si vous avez des idées, merci pour votre aide.

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Pourrais tu nous poster tes requêtes s'il te plaît ?


  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Alors,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    R_ParameterC -- (liste sans doublons de mes parametres cause)
    SELECT DISTINCT ParameterCause
    FROM AMDEC;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    R_ParameterE -- (liste sans doublons de mes parametres effet)
    SELECT DISTINCT ParameterEffect
    FROM AMDEC;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    R_Parameter -- (liste des parametres cause qui ne sont pas aussi parametres effet)
    SELECT ParameterCause
    FROM R_ParameterC
    WHERE ParameterCause NOT IN (SELECT ParameterEffect FROM R_ParameterE);
    Si dans cette dernière requête je passe le NOT IN en IN, ça fonctionne très bien.

    Merci!

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    http://access.developpez.com/faq/?page=Concept#ReqOpIn

    Autre chose qui n’a peut-être rien à voir mais quand je fais ma première requête, il me retourne dans ma liste un enregistrement vide, mais je suis certaine que mon champs ne comporte pas d’enregistrement avec seulement des espaces.
    Toute la réponse reposait sur cette phrase

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Au niveau des perfs, un RIGHT JOIN serait peut être plus performant, je ne sais pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT AMDEC.ParametreCause, AMDEC_1.ParametreEffet AS C
    FROM AMDEC AS AMDEC_1 RIGHT JOIN AMDEC ON AMDEC_1.ParametreEffet = AMDEC.ParametreCause
    WHERE AMDEC_1.ParametreEffet IS NULL
    EDIT : testé sur 10000 lignes, le not in semble préférable cependant mon jeu n'était pas très diversifié Faudrait pousser les tests

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    Merci pr ton aide,
    avec is not null ça fonctionne.

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

Discussions similaires

  1. [MySQL] Requête NOT IN tableau
    Par Albat_r dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/04/2009, 13h09
  2. Doute sur une requête NOT EXISTS
    Par CinePhil dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/03/2009, 12h00
  3. Problème requête NOT EXISTS
    Par jbulysse dans le forum SQL
    Réponses: 3
    Dernier message: 04/08/2008, 11h22
  4. PB requête NOT ISNULL
    Par crevettepourrie dans le forum Requêtes
    Réponses: 7
    Dernier message: 27/01/2006, 15h14
  5. [SQL]: Requête NOT IN SELECT(...)
    Par CAPPE dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/06/2005, 14h06

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