Rechercher : dans
Par :

SQL : transfert de colonnes entre tables

Dernière réponse le 12 jan 2004 à 11:01:27 Xt@z, le 8 jan 2004 à 15:06:36 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « SQL : transfert de colonnes entre tables » dans :
SQL - Modification de table Voir Modification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...
SQL - Création de table Voir Le SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
Les fonctions Ligne, Lignes, Colonne, Colonnes VoirVous avez un tableau et vous l'avez nommé NomTableau (par exemple) avec : INSERTION / NOM / DEFINIR ..... cocher les cases du tableau et nommer le tableau NomTableau (par exemple) Dans ce tableau, vous voulez connaitre, quelque soit son...
SQL - Mise à jour d'informations VoirLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de...
Tableaux HTML VoirUtilisation de tableaux Il est souvent utile de présenter des informations mieux structurées qu'avec des listes. Les tableaux permettent de les afficher en lignes et en colonnes. Les tableaux sont définis comme étant des suites de lignes. Un...
Attaques par injection de commandes SQL VoirInjection de commandes SQL Les attaques par injection de commandes SQL sont des attaques visant les sites web s'appuyant sur des bases de données relationnelles. Dans ce type de sites, des paramètres sont passés à la base de données sous forme...

1

mobile75, le 8 jan 2004 à 16:15:35

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............

Répondre à mobile75

2

teebo, le 8 jan 2004 à 16:23:09

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!

Répondre à teebo

3

sebsauvage, le 8 jan 2004 à 16:50:54
  • +1

Exemple:

INSERT INTO table3 (col1, col2, col3)
SELECT table1.col5, table1.col6, table2.col8
FROM table1, table2
WHERE table1.col1 = table2.col1

Répondre à sebsauvage

4

teebo, le 8 jan 2004 à 16:52:23

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!

Répondre à teebo

11

sebsauvage, le 8 jan 2004 à 17:26:26

Ahum... sous Access je ne sais pas.
En tous cas sous SQL Server 7 ça tourne.

Répondre à sebsauvage

5

xt@z, le 8 jan 2004 à 16:58:16

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

Répondre à xt@z

6

teebo, le 8 jan 2004 à 17:00:12

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!

Répondre à teebo

7

xt@z, le 8 jan 2004 à 17:07:08

Avec le where c nickel ! merci (+++)

PS: Merci au webmaster pour son cours sur le SQL, j'ai appris bp sur ce site.

Répondre à xt@z

8

mobile75, le 8 jan 2004 à 17:11:31

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............

Répondre à mobile75

9

Xt@z, le 8 jan 2004 à 17:21:20

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...

Répondre à Xt@z

10

xt@, le 8 jan 2004 à 17:23:56

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...

Répondre à xt@

12

mobile75, le 8 jan 2004 à 17:28:55

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............

Répondre à mobile75

13

Xt@z, le 8 jan 2004 à 17:32:17

Pour le moment elles ont aucunes relations...

Répondre à Xt@z

15

sebsauvage, le 8 jan 2004 à 17:44:24

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

Répondre à sebsauvage

14

Xt@z, le 8 jan 2004 à 17:33:50

Et il y a pas vraiment moyens de les lier... là c surtout un pb de présentation g dirais...

Répondre à Xt@z

16

Xt@z, le 8 jan 2004 à 17:47:23

Ba vi moi ce que je veux c juste réunir diff table

Répondre à Xt@z

17

mobile75, le 8 jan 2004 à 18:03:08

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............

Répondre à mobile75

18

xt@z, le 9 jan 2004 à 13:37:13

Je peux toujours rajouter une colonne dans chaque table si nécéssaire...

Répondre à xt@z

19

xt@z, le 12 jan 2004 à 09:12:26

-up- ;o)

pas de solutions pour transferer des colonnes entre tables ?

Répondre à xt@z

20

sebsauvage, le 12 jan 2004 à 09:28:47

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... :-/

Répondre à sebsauvage

21

 xt@z, le 12 jan 2004 à 11:01:27

Et avec le truc des index c pas possible ? (g demande car g pas pigé comment on se servait de ce bidule...)

Répondre à xt@z