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

16 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Exemple:

    INSERT INTO table3 (col1, col2, col3)
    SELECT table1.col5, table1.col6, table2.col8
    FROM table1, table2
    WHERE table1.col1 = table2.col1
    1
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      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
      1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684 > teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ahum... sous Access je ne sais pas.
        En tous cas sous SQL Server 7 ça tourne.
        0
  2. mobile75 Messages postés 70 Date d'inscription   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
  3. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    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
  4. 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
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. mobile75 Messages postés 70 Date d'inscription   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
  8. 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
  9. 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
  10. mobile75 Messages postés 70 Date d'inscription   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
  11. Xt@z
     
    pour le moment elles ont aucunes relations...
    0
    1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
       
      ah ben vi là forcément c'est moins pratique :)
      0
  12. Xt@z
     
    et il y a pas vraiment moyens de les lier... là c surtout un pb de présentation g dirais...
    0
  13. Xt@z
     
    ba vi moi ce que je veux c juste réunir diff table
    0
  14. mobile75 Messages postés 70 Date d'inscription   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
  15. xt@z
     
    je peux toujours rajouter une colonne dans chaque table si nécéssaire...
    0
  16. xt@z
     
    -up- ;o)

    pas de solutions pour transferer des colonnes entre tables ?
    0
    1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
       
      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
  17. 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