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

Développement SQL Server Discussion :

Jointure sur une condition 'NOT' ?


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 15
    Points
    15
    Par défaut Jointure sur une condition 'NOT' ?
    Bonjour à tous, (Merci sqlpro pour le A à Z !)

    Je doit faire une jointure entre 2 tables selon le ID.

    Seulement, la/les requête doit renvoyer les champs dont :

    - Les ID sont identiques sur Table1 et sur Table2 (WHERE Table1.ID = Table2.ID) ---> (sans problème)
    - Les ID contenus dans Table1 et non dans Table2
    - Les ID contenus dans Table2 et non dans Table1

    Pour ensuite leur attribuer des valeurs selon, s'il sont contenus dans les 2 table ou seulement dans une des 2.

    Ma question : Comment sortir la liste des ID qui se trouve dans l'une des tables mais pas dans l'autre ?
    (il n'y a pas moyen de faire la comparaison avec un autre champs que le ID)

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "SELECT M.ID, M.location, M.qty, A.secteur, A.type, A.commentaire 
    FROM Table1 M JOIN Table2 A 
    ON M.ID=A.ID"
    En espérant une réponse :-)

    Merci,

    Pressorus

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut
    Seulement, la/les requête doit renvoyer les champs dont :

    - Les ID sont identiques sur Table1 et sur Table2 (WHERE Table1.ID = Table2.ID) ---> (sans problème)
    - Les ID contenus dans Table1 et non dans Table2
    - Les ID contenus dans Table2 et non dans Table1
    Sous 2005
    L'opérateur EXCEPT permet d'isoler les lignes faisant partie de la table A et ne faisant pas partie de la table B. Isolant ainsi les lignes uniques de la table A.
    SELECT * FROM TABLE_A EXCEPT SELECT * FROM TABLE_B

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 33
    Points : 43
    Points
    43
    Par défaut
    salut

    liste des ID qui se trouve dans Table1 mais pas dans Table2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT M.ID
    FROM Table1 M WHERE M.ID NOT IN (SELECT A.ID Table2 A)
    liste des ID qui se trouve dans Table2 mais pas dans Table1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT M.ID
    FROM Table2 A WHERE A.ID NOT IN (SELECT M.ID Table2 M)

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 12
    Points : 15
    Points
    15
    Par défaut Merci !
    Je suis sur SQL Server 2000 ! - Donc EXCEPT ne fonctionne pas...

    SAHARBI, j'avais essayer avec le NOT IN mais j'avais une erreur dans ma requête ... ce qui n'a plus d'importance puisque ça fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT M.ID
    FROM Table1 M WHERE M.ID NOT IN (SELECT A.ID FROM Table2 A)
    Je vais faire 3 requête pour avoir tout ce que je veux.

    Merci !

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

Discussions similaires

  1. [MySQL] Plusieurs jointures sur une même table
    Par stephyyr dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2006, 14h24
  2. Réponses: 15
    Dernier message: 14/04/2006, 15h34
  3. [MySQL] Jointure sur une table déjà jointe
    Par genova dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/10/2005, 23h54
  4. Réponses: 5
    Dernier message: 06/09/2005, 16h01
  5. jointure sur une même table
    Par guillaumeVb6 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/09/2004, 15h08

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