Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2008, 08h34   #1
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Par défaut Transfert de toutes les valeurs de plusieurs champs vers une autre table

Salut ^^
Je voudrais transférer toutes les valeurs d'un champs d'une table vers une autre.
J'ai trouvé la méthode
Code :
INSERT INTO ma_table (champs) VALUES SELECT (champ2) FROM mon_autre_table
mais ça ne marche pas.
J'utilise WAMP avec MySQL 5.0.45.
Comment faire svp ?
Merci ^^
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 11h42   #2
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
salut

Code :
INSERT INTO ma_table (champs) SELECT (champ2) FROM mon_autre_table
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 14h29   #3
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Merci ça marche très bien pour un seul champ (normal en fait) mais je voudrais faire ça avec plusieurs champs.
J'ai une grosse table qui doit prendre la valeur de ses champs dans plusieurs tables.
Alors j'ai fais un
Code :
INSERT INTO repertoire (service, fonction, nom) SELECT service.service, fonction.fonction, personnel.nom FROM service, fonction, personnel
mais il a multiplié chaque champ entre eux ce qui fait qu'au lieu d'avoir 200 entrées j'en ai eu plus d'un million !
Et si je rentre les données champ par champ, il me fait autant d'entrées qu'il y a avec le premier champ, puis d'autres entrées à la suite avec les autres champs...
Je voudrais mettre tous les champs au même niveau.
Comment faire ?
Merci ^^
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 15h33   #4
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
cela est normal

sur quelle critere tu relies le service, la fonction et le nom dans tes différentes tables?
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 16h43   #5
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Ah bah en fait je les avais pas reliées
Désolé, étant débutant je ne connaissais pas cette "astuce".
Mais on vient de m'expliquer.
Je vais voir ce que ça donne de suite !
Merci
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 16h58   #6
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Hum il n'a pas voulu le méchant MySQL
Voici ma requête
Code :
INSERT INTO repertoire (id_service, id_fonction, id_pers) SELECT service.id_service, fonction.id_fonction, personnel.id_pers FROM service, fonction, personnel WHERE repertoire.id_service=service.id_service AND repertoire.id_fonction=fonction.id_fonction AND repertoire.id_pers=personnel.id_pers
Alors voici la structure de mes tables.
J'ai 4 tables.
La table "repertoire" doit contenir les ID des 3 autres tables.
L'ID de "service" est "id_service", celui de "fonction" est "id_fonction" et celui de "personnel" est "id_pers".
En exécutant cette requête, j'ai le message : #1054 - Unknown column 'repertoire.id_service' in 'where clause'.
Pourtant j'ai bien regardé, le champ "id_service" existe bien dans la table "repertoire".
Moi je vois pas
Merci de ton aide
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 17h31   #7
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
mais non, il n'est pas méchant
mais comment veux tu qu"il sache quel service de ta table service correspond à la fonction de ta table fonction
Comment as tu ces infos?

Donne un petit exemple de tes données de tes tables
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2008, 17h39   #8
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
C'est vrai
Maintenant que tu le dis, je me suis rendu compte que j'ai voulu faire à peut prêt n'importe quoi
Je reverrai tout ça demain au taff et je te tiens au courant
Merci !
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h09.


 
 
 
 
Partenaires

Hébergement Web