SQL : transfert de colonnes entre tables

Fermé
Xt@z - 8 janv. 2004 à 15:06
 xt@z - 12 janv. 2004 à 11:01
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

16 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
8 janv. 2004 à 16:50
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
8 janv. 2004 à 16:52
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 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662 > teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011
8 janv. 2004 à 17:26
ahum... sous Access je ne sais pas.
En tous cas sous SQL Server 7 ça tourne.
0
mobile75 Messages postés 69 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 23 septembre 2008 17
8 janv. 2004 à 16:15
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
8 janv. 2004 à 16:23
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
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 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
8 janv. 2004 à 17:00
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
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 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 23 septembre 2008 17
8 janv. 2004 à 17:11
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
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
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 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 23 septembre 2008 17
8 janv. 2004 à 17:28
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
pour le moment elles ont aucunes relations...
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
8 janv. 2004 à 17:44
ah ben vi là forcément c'est moins pratique :)
0
et il y a pas vraiment moyens de les lier... là c surtout un pb de présentation g dirais...
0
ba vi moi ce que je veux c juste réunir diff table
0
mobile75 Messages postés 69 Date d'inscription lundi 3 novembre 2003 Statut Membre Dernière intervention 23 septembre 2008 17
8 janv. 2004 à 18:03
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
je peux toujours rajouter une colonne dans chaque table si nécéssaire...
0
-up- ;o)

pas de solutions pour transferer des colonnes entre tables ?
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
12 janv. 2004 à 09:28
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
Et avec le truc des index c pas possible ? (g demande car g pas pigé comment on se servait de ce bidule...)
0