SQL : transfert de colonnes entre tables

Xt@z -  
 xt@z -
Bonjour,

pour simplifier mon pb (de newbie) est le suivant :
J'ai 2 tables avec leurs colonnes respectives (disons table1 et table 2) comment on fais pour créer une table 3 avec par ex les 3 premieres colonnes de table1 et 2 col de table2? c koi l'instruction ?
ou, autre solution mettre une colonne de table2 à la place d'une colonne de table1 ?
J'ai besoin d'un coup de pouce là SVP !
Merci

PS: je précise que je bosse dans M. Access
A voir également:

16 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Exemple:

INSERT INTO table3 (col1, col2, col3)
SELECT table1.col5, table1.col6, table2.col8
FROM table1, table2
WHERE table1.col1 = table2.col1
1
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Ca marche sous ACCESS?
Tu es sur que le INTO est direct apres le SELECT, intuitivement je l'aurais colle a la toute fin...mais ca fait tellement longtemps...

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667 > teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention  
 
ahum... sous Access je ne sais pas.
En tous cas sous SQL Server 7 ça tourne.
0
mobile75 Messages postés 69 Statut Membre 17
 
salut,
d'abord as-tu au moins un champ commun dans tes 2 tables ?
par exemple une clé_primaire dans table 1 cle_primaire_table1 dans table2
Si oui tu fais une requete creation de table en jointant les 2 tables tu descends les champs que tu veux dans ta nouvelle tabe 2 puis tu executes

A+
Essayer.........des fois ça marche............
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Salut, je ne sais pas si ACCESS les prend, a verifier, mais un SELECT blablabla INTO ca ne marche pas?

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0
xt@z
 
en fait g viens d'essayer avec
INSERT INTO blabla SELECT blablabla FROM blablabla;

ce qui est pas mal sauf que bien sûr ca ne se mets pas dans les les premières lignes du tableau mais à la fin...

mobile75>> comment on fait pour indiquer les clé primaire, g pas trouvé ? à part les mettre à la main a chaque fois :( enfin bref si tu avais un code en ex ton idée, ca serait bien ;)

teebo>> heu... select... into ?? marche comment ca ? j'y arrive pas...

sebsauvage>>v essayez en rajoutant le where... ;)

merci de vos répones en tout cas
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Arf, une de mes boulettes preferees, t'inquietes pas j'ai la tete ailleurs, desole pour cette fausse piste, ecoute Sebsauvage ca t'avancera beaucoup plus :-D

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xt@z
 
avec le where c nickel ! merci (+++)

PS: Merci au webmaster pour son cours sur le SQL, j'ai appris bp sur ce site.
0
mobile75 Messages postés 69 Statut Membre 17
 
salut
je confirme la version de seb
Insert into table3 (col1,col2)
select ...... from.............. where ........


concernant les clés primaire : faire un code vba ( gérant aussi les erreurs ) pour cela puis le faire tourner pour 2 à 5 tables je n'en vois pas l'interet autant le faire à la main
si tu en avais une bonne quarantaine je pense que cela vaudrait le coup en passant un champ de la table comme variable

A+
Essayer.........des fois ça marche............
0
Xt@z
 
alors... J'ai essayer avec le where pour récuperer les colones de 3 tables diff dans une quatrieme, ok sauf que j'ai beaucoup trop de lignes, doit y avoir un truc a faire au niveau de relations...

pour le coup de la clé primaire c que le but est qu'on ne touche plus à access ! les personnes qui se serviront de ca n'y connaissent rien...
0
xt@
 
g taper ca :
INSERT INTO convoi ( machine, DATE1, H1, Min1, DATE2, H2, Min2, DATE3, H3, Min3 )
SELECT convoyeur1.Machine, convoyeur1.DATE, convoyeur1.H, convoyeur1.MIN, convoyeur2.DATE, convoyeur2.H, convoyeur2.MIN, convoyeur3.DATE, convoyeur3.H, convoyeur3.MIN
FROM convoyeur1, convoyeur2, convoyeur3;


alors que si g fais à la suite :
INSERT INTO convoi ( Machine, date1, temps1, min1 )
SELECT convoyeur1.Machine, convoyeur1.DATE, convoyeur1.H, convoyeur1.MIN
FROM convoyeur1;

puis
INSERT INTO convoi ( Machine2, date2, temps2, MIN2 )
SELECT convoyeur2.Machine, convoyeur2.DATE, convoyeur2.H, convoyeur2.MIN
FROM convoyeur2;

et
INSERT INTO convoi ( Machine3, date3, temps3, MIN3 )
SELECT convoyeur3.Machine, convoyeur3.DATE, convoyeur3.H, convoyeur3.MIN
FROM convoyeur3;

c niquel le seul pb c que les 2 dernieres insertions se font a chaque fois en bas du tablo...
0
mobile75 Messages postés 69 Statut Membre 17
 
tes 3 tables ont-elles une relations de 1:1 ou 1:n entre elles ?

si tu as 1:n cela pourrais expliquer le nombre important de lignes

Precises un peu svp

A+
Essayer.........des fois ça marche............
0
Xt@z
 
pour le moment elles ont aucunes relations...
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
ah ben vi là forcément c'est moins pratique :)
0
Xt@z
 
et il y a pas vraiment moyens de les lier... là c surtout un pb de présentation g dirais...
0
Xt@z
 
ba vi moi ce que je veux c juste réunir diff table
0
mobile75 Messages postés 69 Statut Membre 17
 
comme dit seb

ah ben vi là forcément c'est moins pratique :)

et si en plus tu peux pas les lier entre elles alors.....
t'es sur que t'as pas un champ identique dans tes 3 tables ex: N° de commande ou Nom ou code postal etc ...etc ....
parce que sinon ...
c'est comme melanger les torchons et les serviettes.......
A+
Essayer.........des fois ça marche............
0
xt@z
 
je peux toujours rajouter une colonne dans chaque table si nécéssaire...
0
xt@z
 
-up- ;o)

pas de solutions pour transferer des colonnes entre tables ?
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Ben si tu n'a aucun moyen de lier les informations de tes 3 tables entre elles, ça ne sert à rien.
Tu obtiendra juste un beau produit cartésien... :-/
0
xt@z
 
Et avec le truc des index c pas possible ? (g demande car g pas pigé comment on se servait de ce bidule...)
0