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 :

[debutant]alternative à NOT IN


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 86
    Par défaut [debutant]alternative à NOT IN
    Bonjour,
    Je cherche à réaliser la requete suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select t1.c1,t2.c2 from table1 t1, table2 t2 where [condition1] and [condition2] and 
    (t1.c1,t2.c2) not in (select t3.c1,t3.c2 from table3 t3)
    Mais j'ai une erreur de syntaxe, (t1.c1,t2.c2) n'est pas supporté par not in...
    Je souhaite avoir la liste du couple t1.c1,t2.c2 lorsqu'il n'est pas présent dans t3... NOT IN ne semble pas approprié pour obtenir cette liste... Mais je ne sais pas comment exprimé ce que je recherche autrement qu'avec not in
    Quelle alternative à not in puis-je utiliser dans ce cas?
    J'ai essayé aussi NOT EXISTS sans meilleur résultat...

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    SGBD et version ?
    Essayez avec un LEFT JOIN et la clause IS NULL

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 86
    Par défaut
    oups désolé ...MySQL 5
    Comme c'est une question pure SQL, je croyais que c'était pas indispensable

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Citation Envoyé par sly33
    Comme c'est une question pure SQL, je croyais que c'était pas indispensable
    Mais MySQL n'est pas toujours compatible avec le SQL standard (et il n'est pas le seul)

    NOT EXISTS est aussi une bonne alternative à NOT IN
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 86
    Par défaut
    Mais MySQL n'est pas toujours compatible avec le SQL standard (et il n'est pas le seul)
    OK désolé
    NOT EXISTS est aussi une bonne alternative à NOT IN
    j'ai pas dû réussir à bien l'utiliser dans mon cas alors...

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Avec NOT EXISTS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SELECT  t1.c1
        ,   t2.c2
    FROM    table1 AS t1
        INNER JOIN
            table2 AS t2
            ON   [condition join]
    WHERE   [condition2]
        AND NOT EXISTS
            (   SELECT  1
                FROM    table3 AS t3
                WHERE   t1.c1 = t3.c1
                    AND t2.c2 = t3.c2
            )
    ;
    PS : Les jointures normalisées (avec JOIN), c'est mieux que les jointures dans le WHERE...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. [DEBUTANT][AXIS]Could not create the Java virtual machine
    Par nezdeboeuf62 dans le forum Services Web
    Réponses: 4
    Dernier message: 30/05/2007, 14h09
  2. (debutant) The command or action "Find" is not available now
    Par tounepistols dans le forum Access
    Réponses: 7
    Dernier message: 10/08/2006, 15h22
  3. [Débutant] TQuery or not ?
    Par Rupella dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/02/2006, 11h47
  4. [debutant]sql serveur et not null?
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/11/2004, 16h21

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