IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

transferer de champs d'une table a une autre ?


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut transferer de champs d'une table a une autre ?
    Bonjour a tous,

    je ne connais pas vraiment le sql, et j'aurais besoin de votre aide pour faire un transfert...

    dans ma BDD, j'ai deux tables qui ont un champ identique (POST)

    ma premiere table est de la forme suivante :

    TABLE 1
    ----topicid
    ----posts

    et ma deuxieme table comporte une dizaine de champs dont un "posts" du genre

    TABLE 2
    ----uid
    ----posts
    ----etc...

    je souhaiterais faire une requete pour que dans ma table 2, la valeur post corresponde a celle de la table 1 sachant que la valeur du topicid de la table 1 correspond au uid de la table 2.

    je ne sais pas si je suis tres clair mais ce n'est pas simple a expliquer....
    si il le faut je pourrais essayer de reformuler....

    merci de votre aide et bonne journée.

  2. #2
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par skudx
    Bonjour a tous,

    je ne connais pas vraiment le sql, et j'aurais besoin de votre aide pour faire un transfert...

    dans ma BDD, j'ai deux tables qui ont un champ identique (POST)

    ma premiere table est de la forme suivante :

    TABLE 1
    ----topicid
    ----posts

    et ma deuxieme table comporte une dizaine de champs dont un "posts" du genre

    TABLE 2
    ----uid
    ----posts
    ----etc...

    je souhaiterais faire une requete pour que dans ma table 2, la valeur post corresponde a celle de la table 1 sachant que la valeur du topicid de la table 1 correspond au uid de la table 2.

    je ne sais pas si je suis tres clair mais ce n'est pas simple a expliquer....
    si il le faut je pourrais essayer de reformuler....

    merci de votre aide et bonne journée.
    Bonjour,
    quelque chose comme
    insert into table_dest (z1) select from table_ori(z1)

    voir http://dev.mysql.com/doc/refman/5.0/...rt-select.html
    Cordialement,
    Christophe Charron

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    merci de cette reponse

    je suppose que la valeur Z1 de cet exemple correpond a ma valeur posts, c'est bien ça ?

    dans ce cas est ce que je suis sur, que les valeurs seront bien en correspondance avec les topicid et uid ?

    car la valeur post du topicid=1 doit aller dans le uid=1, etc...

    je prefere demander car je ne maitrise pas vraiment le sql

    merci et @+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    je viens de tenter :

    insert into table_destination(posts) select from table_origine(posts)

    mais cela ne marche pas, ça me donne une erreur :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'into table_destination(posts) select from table_origine(posts)' at line 1

    J'ai bien sur remplacé le nom des tables par ceux qui me correspondent

    je ne comprends pas ce qui se passe....

    merci encore pour votre aide et @+

  5. #5
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par skudx
    je viens de tenter :

    insert into table_destination(posts) select from table_origine(posts)

    mais cela ne marche pas, ça me donne une erreur :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'into table_destination(posts) select from table_origine(posts)' at line 1

    J'ai bien sur remplacé le nom des tables par ceux qui me correspondent

    je ne comprends pas ce qui se passe....

    merci encore pour votre aide et @+
    LA syntaxe du select est incorrecte dans votre exemple.
    Il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into table_destination(posts) select posts from table_origine
    Attention, cette syntaxe de l'insert vous oblige à insérer les données dans l'ordre de la déclaration des colonnes de la table dans laquelle vous désirez insérer.
    Pour la lisibilité j'avais utilisé les même noms, mais ce n'est bien évidement pas obligatoire. LEs seuls soucis que vous pourriez avoir, seraient ceux consécutifs à des transformation de type : le moteur ne doit pas apprécier que l'on essaie de mettre dans une zone numérique des caractères alphabétiques par exemple.
    Cordialement,
    Christophe Charron

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    cela se passe mieux car il n'y a pas d'erreur cependant, les valeurs posts ne sont pas modifiés dans la table de destination...

    mysql m'indique bien que xxx requetes ont été effectués avec succés mais cela ne semble pas modifier mes valeurs "posts" dans ma table de destination...

    ne faudrait il pas lui indiquer une relation entre le topicid de ma table d'origine et le uid de ma table de destination ??

    merci de votre aide

  7. #7
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Citation Envoyé par skudx
    cela se passe mieux car il n'y a pas d'erreur cependant, les valeurs posts ne sont pas modifiés dans la table de destination...

    mysql m'indique bien que xxx requetes ont été effectués avec succés mais cela ne semble pas modifier mes valeurs "posts" dans ma table de destination...

    ne faudrait il pas lui indiquer une relation entre le topicid de ma table d'origine et le uid de ma table de destination ??

    merci de votre aide
    Heu ... La syntaxe actuelle "insert ..." est faite pour insérer, ajouter des données dans la table. Celles qui sont déjà présentes dans la table destination ne sont pas concernées , donc pas modifiées par les ordres "insert"

    Pour cela il faudrait faire une requête de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update table1 set posts = (select posts from table2 where table2.uid=table1.topicid)
    mais il faut que les 2 clés soient uniques
    Cordialement,
    Christophe Charron

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    merci ça a marché

    bonne journée a tous et encore merci pour votre aide

    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo