web-dev-qa-db-fra.com

Comment copier des données d'une table dans une nouvelle table dans MySQL?

Je veux copier des données d'une table à une autre dans MySQL.

Tableau 1 (Tableau existant):

aid    
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link

Tableau 2 (nouveau tableau)

st_id
uid
changed
status
assign_status

Je souhaite copier certains champs de données du TABLEAU 1 au TABLEAU 2.

Cela peut-il être fait en utilisant des requêtes MySQL?

132
Fero

Cela fera ce que vous voulez:

INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1

Si vous souhaitez inclure toutes les lignes de la table1. Sinon, vous pouvez ajouter une instruction WHERE à la fin si vous souhaitez ajouter uniquement un sous-ensemble de table1.

J'espère que ça aide.

253
jdias

Si vous ne voulez pas lister les champs et que la structure des tables est la même, vous pouvez faire:

INSERT INTO `table2` SELECT * FROM `table1`;

ou si vous voulez créer une nouvelle table avec la même structure:

CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;

référence pour insertion choisie ; référence pour créer une table

63
Bryan

Vous pouvez facilement obtenir des données d'une autre table. Vous devez ajouter des champs que vous voulez.

La requête mysql est:

INSERT INTO table_name1(fields you want)
  SELECT fields you want FROM table_name2


où, les valeurs sont copiées de table2 à table1

20
php
CREATE TABLE newTable LIKE oldTable;

Ensuite, pour copier les données sur

INSERT INTO newTable SELECT * FROM oldTable;
5
Seymur Asadov

La meilleure option consiste à utiliser l'instruction INSERT ... SELECT dans mysql.

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

4
dexter.ba
SELECT *
INTO newtable [IN externaldb]
FROM table1;

http://www.w3schools.com/sql/sql_select_into.asp

3
mikey
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
2
Nana Partykar

Vous pouvez essayer ce code

insert into #temp 
select Product_ID,Max(Grand_Total) AS 'Sales_Amt', Max(Rec_Amount) ,'',''
from Table_Name group by Id
0
Biddut

Vous devriez d'abord créer la table2.

 insérer dans la table2 (champ1, champ2, ...) 
 sélectionner champ1, champ2, .... 
 dans table1 
 où condition; 
0
Sriyashree Swain

SI la table est existé. vous pouvez essayer d'insérer dans nom_table sélectionner * from old_tale;

SI la table n'existe pas. vous devriez essayer de créer la table nom_table comme old_table; insérer dans nom_table sélectionner * de old_tale;

0
Jac Tian

la requête ci-dessus ne fonctionne que si nous avons créé une table de clients avec les colonnes correspondantes du client

INSERT INTO clients(c_id,name,address)SELECT c_id,name,address FROM customer
0
Qanuni