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

PostgreSQL Discussion :

Update d'une table à partir de deux autres tables


Sujet :

PostgreSQL

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Update d'une table à partir de deux autres tables
    Bonjour

    J'ai réalisé un import de fichier excel dans une grande table dont les champs correspondent à mes colonnes.
    Cette table s'appelle "Import" elle contient les champs Nom_categorie et Nom_descriptif (dans laquelle un nom_categorie correspond à plusieurs nom_descriptif)

    Dans ma base, j'ai deux tables :
    - Descriptif : idDescriptif, Nom_descriptif, idCategorie
    - Categorie : idCategorie, Nom_categorie

    Je voudrais mettre à jour les idCategorie de ma table Descriptif.
    J'ai essayé différentes façons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE "Descriptif" INNER JOIN "Categorie" INNER JOIN "Import" ON "Categorie"."Nom_categorie" = "Import"."Nom_categorie"
    ON "Descriptif"."Nom_descriptif"="Import"."Nom_descriptif" SET "Categorie"."idCategorie" ="Descriptif"."idCategorie" ;
    ça ne marche pas, j'ai alors essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE «Descriptif »
    SET Descriptif.idCategorie=Categorie.idCategorie
    FROM Descriptif
    INNER JOIN Import ON Descriptif.Nom_descriptif = Import.Nom_descriptif
    INNER JOIN Categorie ON Import.Nom_categorie = Categorie. Nom_categorie ;
    et là ça me dit que descriptif est spécifié plusieurs fois donc ça ne marche pas...
    J'ai beau chercher je ne comprends pas...
    Quelqu'un pourrait-il m'aider?
    merci d'avance

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Essaye plutot ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE "Descriptif" 
    SET "Descriptif"."idCategorie" = c."idCategorie"
    FROM "Categorie" c 
    INNER JOIN "Import" i ON c."Nom_categorie" = i."Nom_categorie" 
    WHERE "Descriptif"."Nom_descriptif"=i."Nom_descriptif"
    use et abuse des alias, ce gene en rien pour les perf, mais tu gagnes en lisibilité.
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    j'ai essayé cette solution et il me dit :
    "ERREUR: La colonne "Descriptif" de la relation "Descriptif" n'existe pas "

    et alors là je ne comprends vraiment pas... (je précise que je débute avec le sql et notamment avec postgres et phppgadmin :p )

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 185
    Points : 224
    Points
    224
    Par défaut
    C'est à cause de l'alias au niveau du SET.
    Donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE "Descriptif" 
    SET "idCategorie" = c."idCategorie"
    FROM "Categorie" c 
    INNER JOIN "Import" i ON c."Nom_categorie" = i."Nom_categorie" 
    WHERE "Descriptif"."Nom_descriptif"=i."Nom_descriptif"

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    ça fonctionne !!!! merci merci merci beaucoup

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/05/2014, 17h55
  2. Construire une table à partir de deux autres
    Par CaNiBaLe dans le forum Administration
    Réponses: 4
    Dernier message: 22/10/2013, 16h55
  3. UPDATE d'une Table à partir de deux autres Tables
    Par Marc_27 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/07/2009, 14h13
  4. Réponses: 4
    Dernier message: 20/03/2007, 09h54
  5. Réponses: 11
    Dernier message: 13/07/2006, 16h15

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