Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 19/05/2014 12:29:31
- tatou
- Membre
inserer dans une table à partir de plusieurs tables
Bonjour Postgresql Pro
Je serais reconnaissante si tu peux m'aider
Je veux insérer dans une table des données à partie des autres tables
exple
j'ai une table1(col1,col2,col3,col4,col4,col5,col6)
et une table2(col1,col2)
table3(col3,col4,col5)
j'ai essayé avec ce bout du code mais pas de sucées :
insert into table1(col1,col2,col3,col4,col4,col5,col6)
select col2
from table2
where table2.col1 = table1.col1
select col5 , col6
from table2
where table2.col3 = table1.3
comment faire est ce je dois travailler avec les curseurs ?
merci pour ton aide appréciée
Hors ligne
#2 19/05/2014 12:34:54
- rjuju
- Administrateur
Re : inserer dans une table à partir de plusieurs tables
Bonjour,
il faut que la partie SELECT de la requête donne une valeur pour chacun des champs spécifié dans l'INSERT.
Votre INSERT spécifie tous les champs de la table table1 : (col1,col2,col3,col4,col4,col5,col6), et votre SELECT ne renseigne que col2. De plus, votre requête contient deux parties SELECT, ce qui ne peut pas fonctionner. Votre modèle semble également problématique, table2 et table3 n'ayant apparemment aucunes relations entre elles.
Julien.
https://rjuju.github.io/
Hors ligne
#3 19/05/2014 13:00:58
- tatou
- Membre
Re : inserer dans une table à partir de plusieurs tables
merci rjuju pour tes explications
comment faire alors pour remplir une table à partier de plusieurs tables
et si j'ai une autre table4(col1,col3)
insert into table1(col1,col2,col3,col4,col4,col5,col6)
select col1,col2
from table4,table2
where table4.col1 = table2.col1
select col5 , col6
from table3,table4
where table2.col3 = table4.col3
Hors ligne
#4 19/05/2014 15:51:44
- gleu
- Administrateur
Re : inserer dans une table à partir de plusieurs tables
Il faut une seule requête SELECT avec la jointure qui va bien entre les différentes tables.
Guillaume.
Hors ligne
#5 19/05/2014 16:13:54
- tatou
- Membre
Re : inserer dans une table à partir de plusieurs tables
si non y'a t-il une autre solution ? j'arrive pas à le résoudre
Hors ligne
#6 19/05/2014 17:05:57
- gleu
- Administrateur
Re : inserer dans une table à partir de plusieurs tables
Eh bien, comme vous donnez pratiquement zéro information sur les liens entre les différentes tables, je ne vois pas trop ce qu'on peut vous répondre.
Une solution possible serait d'insérer les données à partir d'une première table, puis de faire des UPDATE pour intégrer les données des autres.
Guillaume.
Hors ligne
#7 19/05/2014 17:14:20
- tatou
- Membre
Re : inserer dans une table à partir de plusieurs tables
le seul lien entre table4, table2 et table 3 est qu'ils contiennent des données qui seront insérées dans la table1
donc je fais insert puis update et cela via un trigger ou je récupére le résultat du mise à jour dans un curseur ?
Hors ligne