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

AS/400 Discussion :

[SQL] Requête entre 2 tables


Sujet :

AS/400

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 148
    Points : 64
    Points
    64
    Par défaut [SQL] Requête entre 2 tables
    Bonjour,
    J'aurais besoin d'aide pour une requête SQL
    J'ai 2 tables (TableA et TableB) de valeurs, certaines valeurs sont présente dans l'une et pas dans l'autre, ce que je voudrai faire, c'est retrouver les valeurs qui ne sont pas dans ma TableB.

    Voyez :

    Comme vous pouvez le voir j'ai la valeur F496 qui apparait dans ma TableA, elle apparait aussi dans la TableB (sur plusieurs lignes mais peu importe, il ne faut pas en tenir compte) donc elle a bien été transférée.
    La valeur F500 par contre apparait uniquement dans la TableA.

    Ma requête SQL devra donc trouver les valeurs apparaissant dans la TableA mais n'apparaissant pas au moins un fois dans la TableB.
    Dans l'exemple que je vous ai donné ma requête renverrai les valeurs suivantes :
    F497, F500

    Merci d'avance,
    R4ndy.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 123
    Points : 146
    Points
    146
    Par défaut
    Bonjour,

    LEFT EXCEPTION JOIN ( LEFT est optionnel, c'est la valeur par défaut) donne toutes les lignes de la table de gauche pour lesquels il n'y a pas de correspondance dans la table de droite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select tablea.*                         
      from tablea  exception join tableb
           on tablea.champ1 = tableb.champ1

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 148
    Points : 64
    Points
    64
    Par défaut
    Salut,
    Merci pour ta petite aide, je voulais savoir si la requête agis comme ceci :
    - Elle prend la ligne 1 de la tableA et regarde la ligne 1 de la tableB et voit si elle son identique
    - Ensuite, elle prend la ligne 2 de la tableA et regarde la ligne 2 de la tableB et voit si elle son identique

    etc ... ?!

    Parce que si c'est le cas, ce n'est pas ça que je cherche.

    En fait il faudrait ça fonctionne comme ceci :
    - Je regarde la ligne 1 de la tableA, je cherche dans la tableB si cette valeur existe, si non, je renvoi cette valeur.
    - Je regarde la ligne 2 de la tableA, je cherche dans la tableB si cette valeur existe, si oui, je ne renvoi pas cette valeur.
    - Je regarde la ligne 3 de la tableA, je cherche dans la tableB si cette valeur existe, si non, je renvoi cette valeur.

    Etc...

    Voilà.

    R4ndy

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 123
    Points : 146
    Points
    146
    Par défaut
    Pas de soucis ! cela fonctionne bien comme tu le souhaites !

    J'ai vérifié avec ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE TESTSQL/TABLEA ( CHAMP1 CHAR(4)  NOT NULL DEFAULT '' ) ; 
    CREATE TABLE TESTSQL/TABLEB ( CHAMP1 CHAR(4)  NOT NULL DEFAULT '' )  ;
    Le select donne bien comme résultat :
    SQL ne traite pas du ligne à ligne comme pouvait le faire le "matching" du cycle RPG, mais bien l'ensemble des données.

    Voici ce que personnellement j'utilise pour expliquer les différentes jointures


  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 148
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup jump400 !

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

Discussions similaires

  1. [SQL] Requête entre 2 tables
    Par R4ndy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/12/2009, 00h54
  2. [SQL] Requête entre tables
    Par R4ndy dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/11/2009, 01h35
  3. [SQL] Jointure entre 3 tables
    Par bingo06260 dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/03/2008, 14h49
  4. [SQL] Intersection entre deux tables
    Par Al3x dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2007, 16h46
  5. [SQL] Requête sur 2 tables
    Par Attilius dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/07/2006, 16h03

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