Copie valeurs d'une table

Copie valeurs d'une table - SQL/NoSQL - Programmation

Marsh Posté le 10-12-2007 à 10:57:28    

Bonjour à tous,  
 
J'ai une table qui s'appel mail, avec les champs Id, Nom , Mail
 
Et j'ai plusieurs autres table avec les memes champs .
 
Je voudrais copier toutes les entrées de ses autres table dans la table mail.
Voici ma requette dans phpmyadmin pour la premiere table :
INSERT INTO tablemails_test (nom,mail) SELECT * FROM jeux1 VALUES (nom,mail)
 
tablemails_test est la table qui doit recevoir les infos avec les champs ( id nom mail )
et la table jeux1 c'est celle qui a les données, ( elle a 2900  entrée ) et les champs, id nom mail)
il faudra que aussi tablemails_test auto incremente le champ id par la suite ..  
 
mais je flanche la requette marche pas et je voie pas pk ..  
 
UNE IDEE ?? merci

Reply

Marsh Posté le 10-12-2007 à 10:57:28   

Reply

Marsh Posté le 10-12-2007 à 11:37:15    

Essaie ça pour voir ...
=>
INSERT INTO tablemails_test (nom,mail)  
SELECT nom,mail FROM jeux1


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

Marsh Posté le 10-12-2007 à 11:39:46    

Cool merci ca marche , et question y a la possibilitée de faire que pas de doublon ? cad que ca insert pas si le mail est deja present ?

Reply

Marsh Posté le 10-12-2007 à 11:41:53    

INSERT INTO tablemails_test (nom,mail)  
SELECT distinct nom,mail FROM jeux1

 

edit: ptêt repondu un peu vite :o
En fait tu as déjà des éléments dans ta table et tu ne souhaites pas les rajouter s'ils pré-existent, right?
quel sgbd? quelle version?

Message cité 1 fois
Message édité par anapajari le 10-12-2007 à 11:43:22
Reply

Marsh Posté le 10-12-2007 à 11:45:46    

Alors là un truc dans le genre ... à tester ;-)
 
INSERT INTO tablemails_test (nom,mail)    
SELECT nom,mail FROM jeux1 j
  WHERE NOT EXISTS (SELECT * FROM tablemails_test t
                    WHERE t.nom = j.nom and t.mail = j.mail);

Message cité 1 fois
Message édité par vttman2 le 10-12-2007 à 11:46:25

---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

Marsh Posté le 10-12-2007 à 11:46:06    

merci, mais là il va prendre en compte aussi le nom , je vourai juste que si il voit que le mail existe deja bin il copie pas toute la ligne ( il doit pas faire de recherche sur le nom  ??

Reply

Marsh Posté le 10-12-2007 à 11:52:26    

anapajari a écrit :

INSERT INTO tablemails_test (nom,mail)  
SELECT distinct nom,mail FROM jeux1
 
edit: ptêt repondu un peu vite :o
En fait tu as déjà des éléments dans ta table et tu ne souhaites pas les rajouter s'ils pré-existent, right?
quel sgbd? quelle version?


 
En fait voici ma version : MySQL: 5.0.22
 
donc oui je veux pas qu'il rajoute les mail deja existant, sans prendre en compte le nom  
car quand je fait ca : INSERT INTO tablemails_test (nom,mail)  SELECT nom,mail FROM jeux1
pui INSERT INTO tablemails_test (nom,mail)  SELECT nom,mail FROM jeux2
bin il me copie tout .. et je risque d'avoir des doublons de mails ....
 

Reply

Marsh Posté le 11-12-2007 à 17:45:56    

vttman2 a écrit :

Alors là un truc dans le genre ... à tester ;-)
 
INSERT INTO tablemails_test (nom,mail)    
SELECT nom,mail FROM jeux1 j
  WHERE NOT EXISTS (SELECT * FROM tablemails_test t
                    WHERE t.nom = j.nom and t.mail = j.mail);


variante :
 

Code :
  1. INSERT INTO tablemails_test (nom,mail)    
  2. SELECT nom,mail FROM jeux1 j
  3. minus SELECT nom, mail FROM tablemails_test;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed