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 :

Update et jointure


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Update et jointure
    Salut!

    Je voudrais faire un update sur une table en utilisant les données d'une autre table... Je sais c'est du déjà vu mais j'y arrive pas...

    Alors on reprend...
    J'ai deux tables TAB1 et TAB2 ayant les attributs "name" et "quantityId" en commun. Je voudrais faire un update de l'attribut "quantityId" de TAB1 avec la valeur de "quantityId" de TAB2 lorsque TAB1.Name = TAB2.Name

    Ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    UPDATE TAB1
    SET quantityId = (SELECT TAB2.quantityIq
                               FROM TAB1
                               INNER JOIN TAB2
                               ON TAB1.Name = TAB2.Name)
    ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE TAB1
    SET quantityId = (SELECT TAB2.quantityIq
                               FROM TAB2
                               WHERE TAB2.Name = TAB1.Name)
    ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    UPDATE TAB1
    SET quantityId = TAB2.quantityId
    FROM TAB1
    INNER JOIN TAB2
    ON TAB1.Name = TAB2.Name
    ;
    Je travaille avec Orcale SQL Plus

    Je viens de faire le tour du forum pour trouver une solution à mon pb... Malheureusement, tout ce que j'ai trouvé ne marche pas...

    Est-ce que qqu peut m'aider???
    Mélanie

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Les 2 premières requêtes me semblent tout à fait correct, qu'est-ce qui ne marche pas ? Message d'erreur ou rien n'est mis à jour ? Question idiote (on ne sait jamais ...), as-tu pensé à valider (COMMIT) tes modifications ? Es-tu sûr d'avoir des enregistrements qui répondent à ta clause WHERE ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Merci, tu viens de m'éclairer!!!!!
    En fait, je pense que ca vient du fait que je n'ai pas mis le nom du schéma devant mes tables. Effectivement, mon select était vide, du coup l'update ne pouvait pas marcher!

    Par contre, juste une petite précision, en fait lorsque j'ai tenté de faire un update en utilisant un FROM, j'avais le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-00933: La commande SQL ne se termine pas correctement
    Est-ce que tu sais d'où ça pourrait venir?
    Mélanie

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par poca10
    lorsque j'ai tenté de faire un update en utilisant un FROM, j'avais le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ORA-00933: La commande SQL ne se termine pas correctement
    Est-ce que tu sais d'où ça pourrait venir?
    J'ai dit que la syntaxe des 2 premières requêtes étaient correctes, mais ce n'est pas le cas pour la 3°, tu ne peux avoir un FROM dans un UPDATE.

    cf. Tuto SQLPro sur Syntaxe UPDATE
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE TAB1, TAB2
    SET TAB1.quantityId = TAB2.quantityId 
    WHERE TAB1.Name = TAB2.Name
    Et comme ceci ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Dsl BiMouXeTTe... Je viens de lancer ma requete...
    Merci qd mm ;o)

    En ce qui concerne le FROM dans un update, moi aussi j'ai trouvé ca bizar mais j'ai juste suivi ce qui était noté dans le forum (yen a même plusieurs exemples!)
    Enfin bref, normalement avec le schema de la base mis dans ma requete ca devrait l'faire!!!! Merci pour ton aide :o)
    Mélanie

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

Discussions similaires

  1. [SQL Serveur] update auto jointure
    Par profy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/05/2006, 16h10
  2. Update et jointure
    Par say dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 18/07/2005, 16h29
  3. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 12h19
  4. update et jointure
    Par frantzgac dans le forum SQL
    Réponses: 21
    Dernier message: 06/12/2004, 10h53
  5. update et jointure
    Par damn dans le forum Langage SQL
    Réponses: 8
    Dernier message: 25/02/2004, 08h44

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