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 :

Interaction entre deux tables


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 84
    Points : 69
    Points
    69
    Par défaut Interaction entre deux tables
    Bonsoir,

    Je possède deux tables, une qui s'appele NODE et l'autre NODE_EXC :

    Colonnes dans NODE : |__IP__|__NODESTATUS__| ==» IP ici est une cle unique

    Colonnes dans NODE_EXC : |__IP__|__EXCEPTION__|

    Voila ce que je fais dessus actuellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    -- Si on ne retrouve pas l'IP dans la table NODE_EXC, on édite Nodestatus à 0
    update NODE set NODESTATUS=0 where IP not in (select distinct ip from NODE_EXC);
    Cependant j'aimerais rajouter deux valeurs à Nodestatus :

    - Si une des exceptions associées à cette IP a une valeur differente de 4 alors Nodestatus vaut 1
    - Si une seule exception est associée à l'IP et que sa valeur est 4 alors Nodestatus passe à 2

    Si je n'ai pas été assez clair dites le moi.

    Merci beaucoup !!!

    EDIT: Je viens de trouver pour Nodestatus = 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update TLANNODES set NODESTATUS=1 where IPADDRESS in (select distinct ipaddress from TLANNODES_EXC where EXCEPTION_ID not like '4');
    RE-EDIT: Et voila pour le second :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update TLANNODES set NODESTATUS=2 where IPADDRESS in (select distinct ipaddress from TLANNODES_EXC)
                                      and IPADDRESS not in (select distinct ipaddress from TLANNODES_EXC where EXCEPTION_ID not like '4');
    Merci quand même

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Personnellement, je serais tenté de prendre le problème autrement, afin de tout faire en une seule requête.

    Tu as besoin de mettre une valeur différente à NODESTATUS selon :
    - Le nombre d'exceptions
    - La présence d'exception à 4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    update node
    set nodestatus = 
    case 
       when (select count(*) from node_exc where node_exc.ip = node.ip) = 0
       then 0 
       when (select count(*) from node_exc where node_exc.ip = node.ip) = 1 and (select count(*) from node_exc where node_exc.ip = node.ip and exception != 4) = 0
       then 2 
       else 1
    end;
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Excellent ! Merci beaucoup c'est déja beaucoup plus propre de même

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

Discussions similaires

  1. Interaction entre deux tables
    Par Nassimux dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2008, 14h23
  2. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  3. Transfert entre deux tables
    Par nyarla01 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/10/2004, 14h36
  4. [VB.NET] ComboBox lien entre deux tables
    Par VDB1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/07/2004, 12h15
  5. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50

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