Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2008, 17h24   #1
Invité de passage
 
Inscription : mars 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 8
Points : 3
Points : 3
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 :
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 :
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
Peewee766 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 20h28   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Essaye plutot ca :

Code :
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é.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 21h08   #3
Invité de passage
 
Inscription : mars 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 8
Points : 3
Points : 3
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 )
Peewee766 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 11h02   #4
Membre confirmé
 
Inscription : février 2006
Messages : 185
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 185
Points : 204
Points : 204
C'est à cause de l'alias au niveau du SET.
Donc:

Code :
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"
djlixfe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2008, 19h08   #5
Invité de passage
 
Inscription : mars 2008
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 8
Points : 3
Points : 3
ça fonctionne !!!! merci merci merci beaucoup
Peewee766 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h18.


 
 
 
 
Partenaires

Hébergement Web