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

Requêtes MySQL Discussion :

update d'une table à partir d'une autre


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 28
    Par défaut update d'une table à partir d'une autre
    Bonjour,

    J'aimerais mettre à jour le champ d'une table1 à partir du champ d'une table2.
    j'ai essayé cette requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update table1 set
    champ1=(select champ2 from table2 
    where table1.champ3=table2.champ3)
    le probleme est que les champs de la table 1 qui ne se trouvent pas dans la table2 sont updatés à null.
    comment faire?
    merci d'avance

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Essayes cette requette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE table1 SET
    champ1= IFNULL((SELECT champ2 FROM table2 
    WHERE table1.champ3=table2.champ3), champ1)

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 28
    Par défaut
    merci pour la réponse.
    mais il me semble que ta requete ne met à jour que si le champ1 est nul.
    or j'aimerais mettre a jour le champ meme s'il est non nul.
    est ce que je peux faire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     UPDATE table1 SET
    champ1=(SELECT champ2 FROM table2 
    WHERE table1.champ3=table2.champ3)
    where table1.champ3=table2.champ3

  4. #4
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Citation Envoyé par candice9 Voir le message
    il me semble que ta requete ne met à jour que si le champ1 est nul.
    Normalement non, regarde la doc surle IFNULL. Si ton select est NULL alors ta colonne ne sera pas modifiée enfin il me semble...

    Concernant ton code, je pense que oui... à tester !

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 28
    Par défaut
    alors ma requete ne fonctionne pas
    et celle proposée non plus car elle met a jour seulement si le champ est nul.

    je vais essayer de reformuler mon probleme (qui n'etait peu être pas tres clair):
    j'ai 2 tables avec les memes champs (num, nom, prenom...).
    La table1 contient 2000 enregistrements dont un certain nombre présent dans la table2.
    J'aimerais simplement mettre a jour les données de table1 par celles de la tables2 (plus récentes) sans que les lignes présentes uniquement dans table1 soient updatées à null.

    merci pour votre aide

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/06/2012, 12h12
  2. 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
  3. [D7],[Access], update d'une table à partir d'une autre
    Par iam dans le forum Bases de données
    Réponses: 4
    Dernier message: 06/11/2006, 18h14
  4. Update d'une table à partir d'une autre
    Par nicoaix dans le forum Access
    Réponses: 5
    Dernier message: 09/03/2006, 11h36
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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