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 :

Requête update à partir d'une autre table


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 4
    Points : 7
    Points
    7
    Par défaut [RESOLU]Requête update à partir d'une autre table
    Bonjour, voici mon problème :

    Je voudrais faire une requête UPDATE sur une table en mettant les données provenant d'une autre table.
    Pour être plus précis, j'ai une première table (table1) possédant un champ "diag" et ayant pour clé primaire le champ "patient". La deuxième table (table2) a pour clé "idnum" et un champ "diag1". Je voudrais en fait mettre à jour le champ "diag" de table1 avec la valeur de "diag1" de table2 pour chaque table1.patient=table2.idnum...

    Et j'y arrive pas...

    Si quelqu'un pouvait m'éclairer, ça m'aiderait grandement !

    Merci d'avance
    ... believe it, it's the dragonflame...

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut Re: Requête update à partir d'une autre table
    Citation Envoyé par amiral thrawn
    Bonjour, voici mon problème :

    Je voudrais faire une requête UPDATE sur une table en mettant les données provenant d'une autre table.
    Pour être plus précis, j'ai une première table (table1) possédant un champ "diag" et ayant pour clé primaire le champ "patient". La deuxième table (table2) a pour clé "idnum" et un champ "diag1". Je voudrais en fait mettre à jour le champ "diag" de table1 avec la valeur de "diag1" de table2 pour chaque table1.patient=table2.idnum...

    Et j'y arrive pas...

    Si quelqu'un pouvait m'éclairer, ça m'aiderait grandement !

    Merci d'avance
    Essaie ça ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update table1 t1, table2 t2 
    set  t1.diag = t2.diag2
    where t1.patient=t2.idnum
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update table1 t1
    set  t1.diag = (select t2.diag2 from table2 t2
    where t1.patient=t2.idnum)
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    C'est résolu ou non ? En espérant que ton moteur supporte la syntaxe...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update table1.diag=table2.diag1
    from table1, table2
    where table1.patient=table2.idnum
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Hop, je m'auto réponds !!! Très fort

    Bon sérieusement, j'ai trouvé tout seul mais je ne supprime pas le post, ça peut servir à d'autres après tout. Donc j'ai fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE    les_patients
    SET              diag1 = Diag2001.diag
    FROM         Diag2001, les_patients
    WHERE     Diag2001.numdiag = 'diag1' and Diag2001.idnum=les_patients.patient
    Au fait, j'utilise SQL server 2000 pour info...

    Je savais tout simplement pas que l'on pouvait utiliser un FROM dans une requête UPDATE... J'avais jamais vu ça dans les tutoriaux que j'ai regardé avant de poser ma question...

    A+

    Erwan

    PS : merci à ceux qui ont répondu pendant que j'écrivais ce post, j'ai pas eu le temps de voir vos réponses
    ... believe it, it's the dragonflame...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    Pour ma part cette structure n'a pas fonctionné sous PostgreSQL avec le message "le nom de la table est cité plusieurs fois"
    J'ai dû faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Update table1
    set champs1 = table2.champs2
    from table2
    where table1.champs3 = table2.champs4

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Un up sur un sujet vieux de 20 ans, ça ne nous rajeunit pas
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

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

Discussions similaires

  1. UPDATE d'un champs à partir d'une autre table
    Par choupeo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/12/2007, 14h50
  2. Réponses: 1
    Dernier message: 04/10/2007, 16h35
  3. SQL Update d'une table à partir d'une autre table
    Par Jean-Marc68 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/03/2007, 13h22
  4. Requête Mise à jour à partir d'une autre table
    Par temar dans le forum Access
    Réponses: 2
    Dernier message: 17/05/2006, 09h23
  5. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32

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