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

SQL Oracle Discussion :

Pb d'update de colonne en utilisant 2 tables


Sujet :

SQL Oracle

  1. #21
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Citation Envoyé par McM Voir le message
    Pourquoi tu as effacé ta solution, elle marchait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Table_B B SET LIB_TBB = 
    (SELECT A.LIB_TBA||' '||B.LIB_TBB
    FROM Table_A A WHERE A.ID_TBA = B.ID_TBA)
    where LIB_TBB LIKE 'TOTO%';
    Parce que le where ne comporte qu'une partie de la restriction nécessaire.
    L'autre étant l'élément de jointure.

    Avec la solution WHERE, on serait amener à ajouter un EXISTS, qui réexécuterait une semi jointure qui ressemblerait fortement à la sous requête corrélée : c'est la seule solution d'ailleurs s'il n'y a pas de contrainte unique sur id_tba de la table_a (et qu'on n'est pas en 10g), à cause des histoires de key preserved table...

    Cela dit, la solution WHERE marcherait à coup sûr si par exemple table_b.id_tba est NOT NULL

    Sinon pour chtom : http://pacmann.over-blog.com/article-34188605.html

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  2. #22
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par pacmann Voir le message
    Parce que le where ne comporte qu'une partie de la restriction nécessaire.
    L'autre étant l'élément de jointure.
    Mais c'est une table fille de tableA, tu as forcément un lien
    La table B est une table détail de la table A.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #23
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Ah zut, j'avais mal lu, je pensais que c'était juste une table de référence ou un truc du genre

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 90
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Juste pour vous dire merci. La requete suivante fonctionne à merveille.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE 
    (SELECT b.lib_tbb, a.libA.LIB_TBA||' '||B.LIB_TBB newlib
    FROM Table_b b 
    	JOIN Table_A a ON a.id_tba = b.id_tba
    WHERE  a.LIB_TBB LIKE 'TOTO%'
    ) t 
    SET t.lib_tbb = t.newlib;

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2008, 18h36
  2. Update de plusieur colonne d'une meme table
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 28/09/2006, 09h25
  3. [VBA-E]Redimenssionnez une colonne en utilisant son numéro
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2006, 15h47
  4. update d'une IBQuery utilisant 2 table avec IBupdateSQL
    Par amad206 dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/02/2005, 10h51
  5. update du colonne avec entier incrementé
    Par superfly dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/05/2004, 17h26

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