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 :

Not In et Null [AC-2000]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Not In et Null
    Bonjour,

    Je voudrais afficher plusieurs champs d'une table en filtrant un de ces champs tel qu'il soit dans une autre table. J'ai donc ce code:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TEMP_PDA.OF, TEMP_PDA.Connecteur, TEMP_PDA.[Cms composant], TEMP_PDA.[Trace composant], TEMP_PDA.[Login opérateur], TEMP_PDA.Date
    FROM TEMP_PDA
    WHERE (((TEMP_PDA.[Cms composant]) Not In (Select [Articles-composants].[Cms] from [Articles-composants] where  [Articles-composants].[Cms] Is Not Null )));

    J'ai rajouté le "where [Articles-composants].[Cms] Is Not Null" après m'être rendu compte que le faite qu'il y ai des enregistrements Null empechait la requête de fonctionner.

    Au final la requête marche et m'affiche tous les enregistrements ne se trouvant pas dans la seconde table mais également les enregistrements Null qui sont pourtant corrects.

    Je présume que l'utilisation de Not In n'est efficace qu'avec les champs clés primaires.

    Comment faire?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Je présume que l'utilisation de Not In n'est efficace qu'avec les champs clés primaires.
    Non tu peux utiliser Not In sur n'importe quel champ.

    Si tu veux seulement la liste des enregistrements qui sont dans TEMP_PDA et pas dans [Articles-composants] pourquoi ne pas faire une jointure qui affiche tous les enr de TEMP_PDA et seulement ceux de [Articles-composants] qui existent et ne sélectionner que les enr de TEMP_PDA où [Articles-composants].[Cms] is null.

    Ce sera plus direct et normalement plus rapide puisque IN() n'est pas optimisable.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Ok merci, j'ai essayé et ça marche beaucoup mieux mais finalement je vais imposer à l'utilisateur de saisir quelque chose pour ce champ et je n'aurai, du coup, plus ce problème.

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

Discussions similaires

  1. Exception étrange : This parser does not support specification "null" version "null"
    Par laurent_m dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/11/2010, 16h20
  2. IN , NOT IN et NULL
    Par Invité dans le forum Développement
    Réponses: 3
    Dernier message: 26/08/2008, 16h36
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  4. Réponses: 8
    Dernier message: 24/07/2003, 10h45
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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