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 02/07/2003, 11h42   #1
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
Par défaut requête mysql sous php

Bonjour,

je souhaite copier dans table1 tous les enregistrements de table2 dont la valeur du champ table2.num est présent dans table3.num

table1 et table2 ont la même structure.


Cette requête ne fonctionne pas :
INSERT INTO table1 SELECT * FROM table2, table3 WHERE table2.num=table3.num

Merci de m'aider !
remi59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 11h51   #2
Membre habitué
 
Inscription : février 2003
Messages : 109
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 109
Points : 103
Points : 103
Envoyer un message via MSN à buffyann
un peu plus de details serait bienvenue.

quelle est l'erreur renvoyée ?
buffyann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 14h18   #3
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
pas d'erreur renvoyée, mais aucune donnée copiée dans table1.
Normalement, des données auraient dûes être copiées.
remi59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 16h18   #4
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
Je viens d'essayer, ça ne fonctionne toujours pas.

ce code fonctionne :
INSERT INTO table1 SELECT * FROM table2

Mais je ne parviens toujours pas à faire la condition de sélection

Merci de m'aider, je continue à chercher...
remi59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 16h22   #5
Membre habitué
 
Avatar de Kimael
 
Inscription : avril 2002
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 149
Points : 123
Points : 123
Il faut que tu précises tous les noms de colonnes pour que le SGBD soit sûr que ça colle !

Citation:
Envoyé par remi59
Cette requête ne fonctionne pas :
Code :
1
2
3
4
5
INSERT
INTO table1
SELECT *
FROM table2, table3
WHERE table2.num=table3.num
Cette requête deviendrait :
Code :
1
2
3
4
INSERT (col1, col2, col3)
INTO table1
SELECT t2.champs1 AS col1, t2.champs2 AS col3, t2.champs4012 AS col3
WHERE t2.champs1 = t3.chps1 AND t2.champs2 = t3.chps36 AND t2.champs4012 = t3.chps69;
Ca te parle ? est-ce que ça te parle... ? Tu es aware ? MDR pardon...

PS: sinon, ça peut être une simple histoire de parenthèses... mais j'en doute
__________________
Membre du comité "Mort aux cons ! ARG..."
Plus on essaye, et plus on a de chances de réussir... proverbe Shadok.
Pensez au tag [Résolu], merci.
Kimael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 16h55   #6
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
Ca ne fonctionne toujours pas... Pas de msg d'erreur. Juste données pas copiées.

Je souhaite copier les données d'une table dans une autre table à condition qu'il y ait une occurence d'un id d'une troisième table. table1 et table2 ont exactement la même structure, les mêmes noms de champs et tout.

Inutile de préciser tous les champs (j'ai essayé, ça ne marche pas mieux) :
ce code "INSERT INTO table1 SELECT * FROM table2 " fonctionne, j'aimerais le code me permettant de faire la sélection des données.

merci d'avance
remi59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 17h00   #7
Membre habitué
 
Avatar de Kimael
 
Inscription : avril 2002
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 149
Points : 123
Points : 123
Citation:
Envoyé par remi59
Inutile de préciser tous les champs (j'ai essayé, ça ne marche pas mieux)
Ah pardon... moi, quand ça ne marche pas et que je ne comprend pas pourquoi, je prend des gants ! Alors voilà ce qui arrive

Ton problème est assez mystérieux.
Avec quoi effectue-tu tes requêtes ?
As-tu une preuve que la requête est bien exécutée et que c'est la jointure qui ne se fait pas ?

On va y arriver...
__________________
Membre du comité "Mort aux cons ! ARG..."
Plus on essaye, et plus on a de chances de réussir... proverbe Shadok.
Pensez au tag [Résolu], merci.
Kimael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2003, 17h04   #8
Membre habitué
 
Avatar de Kimael
 
Inscription : avril 2002
Messages : 149
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 149
Points : 123
Points : 123
Par défaut Re: [débutant] requête mysql sous php

Citation:
Envoyé par remi59
Cette requête ne fonctionne pas :
INSERT INTO table1 SELECT * FROM table2, table3 WHERE table2.num=table3.num
Euh, en fait je crois que j'avais vu juste en parlant de parenthèses !
Essaye ça :
Code :
INSERT INTO table1 (SELECT * FROM table2, table3 WHERE table2.num=table3.num);
__________________
Membre du comité "Mort aux cons ! ARG..."
Plus on essaye, et plus on a de chances de réussir... proverbe Shadok.
Pensez au tag [Résolu], merci.
Kimael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2003, 10h38   #9
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
problème résolu.
pour info voici la solution trouvée :
INSERT INTO table1 SELECT table2.* FROM table2 INNER JOIN table3 ON table2.num=table3.num
remi59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2003, 10h39   #10
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 65
Points : 30
Points : 30
J'ai oublié de remercier ceux qui ont eu la gentillesse de se pencher sur mon problème ! merci !
Alors voilà c'est fait.
remi59 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 08h24.


 
 
 
 
Partenaires

Hébergement Web